From patchwork Mon May 23 16:46:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 12859272 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 012B1C433F5 for ; Mon, 23 May 2022 16:48:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239153AbiEWQsg (ORCPT ); Mon, 23 May 2022 12:48:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239147AbiEWQsf (ORCPT ); Mon, 23 May 2022 12:48:35 -0400 Received: from conuserg-09.nifty.com (conuserg-09.nifty.com [210.131.2.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F26F2644DD; Mon, 23 May 2022 09:48:28 -0700 (PDT) Received: from grover.sesame (133-32-177-133.west.xps.vectant.ne.jp [133.32.177.133]) (authenticated) by conuserg-09.nifty.com with ESMTP id 24NGlJD0027017; Tue, 24 May 2022 01:47:19 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-09.nifty.com 24NGlJD0027017 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1653324440; bh=MPCA4R4IqWHRkBoJTaSINoN0aOYzgG+YzlA/rC/ZfBc=; h=From:To:Cc:Subject:Date:From; b=kZfpt0w3P3DG2SLXPnsun3UPZ7zJyilLysw5WLLP41/wod0yO/f6/1rpEjsrFJwX4 9oUSId3Mlh+RexpiBcF8vSY9jLA9YSFZsxjSVZ33B1tJpRqCUUVEF5yb+4tIz+HmSj fSSIs5QVLIotxBdF0Xu4cv3Z0ATSfOPKa0XDor0BhY/252+wp0enEOlSQjYw4nB1ZW 0q3RbLOebCgKwanPl/B1gtYdXmA2it3Tn46vex4tyDH/mADl8EU0iPwExPECninERg gJ8klJGnULspDInuVZBGYsnBXiy6Xvympv0LPNAfIaU+NTTwK4TVn9UcKTkf/MoWXT JChD4d2BoIi/w== X-Nifty-SrcIP: [133.32.177.133] From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Michal Marek , Nick Desaulniers Subject: [PATCH 1/5] modpost: fix undefined behavior of is_arm_mapping_symbol() Date: Tue, 24 May 2022 01:46:22 +0900 Message-Id: <20220523164626.858340-1-masahiroy@kernel.org> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org The return value of is_arm_mapping_symbol() is unpredictable when "$" is passed in. strchr(3) says: The strchr() and strrchr() functions return a pointer to the matched character or NULL if the character is not found. The terminating null byte is considered part of the string, so that if c is specified as '\0', these functions return a pointer to the terminator. When str[1] is '\0', strchr("axtd", str[1]) is not NULL, and str[2] is referenced (i.e. buffer overrun). Test code --------- char str1[] = "abc"; char str2[] = "ab"; strcpy(str1, "$"); strcpy(str2, "$"); printf("test1: %d\n", is_arm_mapping_symbol(str1)); printf("test2: %d\n", is_arm_mapping_symbol(str2)); Result ------ test1: 0 test2: 1 Signed-off-by: Masahiro Yamada Reviewed-by: Nick Desaulniers --- scripts/mod/modpost.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 6f5c605ab0fb..845bc438ca49 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1179,7 +1179,8 @@ static int secref_whitelist(const struct sectioncheck *mismatch, static inline int is_arm_mapping_symbol(const char *str) { - return str[0] == '$' && strchr("axtd", str[1]) + return str[0] == '$' && + (str[1] == 'a' || str[1] == 'd' || str[1] == 't' || str[1] == 'x') && (str[2] == '\0' || str[2] == '.'); } From patchwork Mon May 23 16:46:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 12859275 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4B0FFC43219 for ; Mon, 23 May 2022 16:48:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238868AbiEWQsh (ORCPT ); Mon, 23 May 2022 12:48:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239093AbiEWQsf (ORCPT ); Mon, 23 May 2022 12:48:35 -0400 Received: from conuserg-09.nifty.com (conuserg-09.nifty.com [210.131.2.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC32C633BA; Mon, 23 May 2022 09:48:28 -0700 (PDT) Received: from grover.sesame (133-32-177-133.west.xps.vectant.ne.jp [133.32.177.133]) (authenticated) by conuserg-09.nifty.com with ESMTP id 24NGlJD1027017; Tue, 24 May 2022 01:47:20 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-09.nifty.com 24NGlJD1027017 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1653324440; bh=lc+fo6j/ioCeXPDSmA+V4raO61i1wvnDNsz3Z956OcE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ayr1gMhnatRU5ootEInfCpUCIbW2afVk+iyRM+8y94EqrZLNOHH41gN7boKNGI9+X /vdHbEgGeMzMrzQzSsqil4tuZ7IltBwR2Y33mbUsah7p4gku8aDqmK1BH+QfdtnXmD f3zqanazqXGRjg58LQsF6aYCQfJO1ZCswFQefAekniYtq4e9KZlO0TzNmgVpG/iyzh 7s2irRYaV8SeMYn2z6nbt8ggP0Lde5MFnD0Cx47ouOCzgc8urZU7xDNm5u4tCd78L4 98oTY5l0jmij2uBvY0FILUvpXtuzWKExJGwix5hqJtCANq8eyl5gBDjKIjGMhAOkoz nTkDHcnVT2qvg== X-Nifty-SrcIP: [133.32.177.133] From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Michal Marek , Nick Desaulniers Subject: [PATCH 2/5] modpost: remove the unused argument of check_sec_ref() Date: Tue, 24 May 2022 01:46:23 +0900 Message-Id: <20220523164626.858340-2-masahiroy@kernel.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220523164626.858340-1-masahiroy@kernel.org> References: <20220523164626.858340-1-masahiroy@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org check_sec_ref() does not use the first parameter 'mod'. Signed-off-by: Masahiro Yamada Reviewed-by: Nick Desaulniers --- scripts/mod/modpost.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 845bc438ca49..843c64eebe8b 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1883,8 +1883,7 @@ static void section_rel(const char *modname, struct elf_info *elf, * to find all references to a section that reference a section that will * be discarded and warns about it. **/ -static void check_sec_ref(struct module *mod, const char *modname, - struct elf_info *elf) +static void check_sec_ref(const char *modname, struct elf_info *elf) { int i; Elf_Shdr *sechdrs = elf->sechdrs; @@ -2069,7 +2068,7 @@ static void read_symbols(const char *modname) sym_get_data(&info, sym)); } - check_sec_ref(mod, modname, &info); + check_sec_ref(modname, &info); if (!mod->is_vmlinux) { version = get_modinfo(&info, "version"); From patchwork Mon May 23 16:46:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 12859274 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 36EBCC433EF for ; Mon, 23 May 2022 16:48:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239173AbiEWQsh (ORCPT ); Mon, 23 May 2022 12:48:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239148AbiEWQsf (ORCPT ); Mon, 23 May 2022 12:48:35 -0400 Received: from conuserg-09.nifty.com (conuserg-09.nifty.com [210.131.2.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7EE265D3B; Mon, 23 May 2022 09:48:29 -0700 (PDT) Received: from grover.sesame (133-32-177-133.west.xps.vectant.ne.jp [133.32.177.133]) (authenticated) by conuserg-09.nifty.com with ESMTP id 24NGlJD2027017; Tue, 24 May 2022 01:47:21 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-09.nifty.com 24NGlJD2027017 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1653324441; bh=9VkSZyqvjBg0Nd6+4A0acMuL4QkugOVgV61qsiUyjxo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vgcW+5UuTOCoZwOd3bihOfnGjtXB0QM4j45PjQOSAxwc2OfU+cU4BKu8m1mcGU0Tt UW84tfeMdGyzBU20U2VPKrDJ2GDT+TQPbASRau+UGWNZvZGAA839PUFhnTaVVI7cOb M5xYyyZj810ta78qYLm+HeA35myOccYP0Td0poM1nu0veamtIHDVgBFpMi4M7s727J g+H8KCzW6oYV08Yr42eueCpMJs9I5zj8AW4I0BgZVbkiyU8b4OQ7NHqadsH7glN6GO GZCCYorECD94/GDTs5bgSKpyiXcCjIFjIkRJLeftSfBv8SIkw+JJkNv8tie11jL1d0 GT9pw4Y8AAMYA== X-Nifty-SrcIP: [133.32.177.133] From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Michal Marek , Nick Desaulniers Subject: [PATCH 3/5] modpost: simplify mod->name allocation Date: Tue, 24 May 2022 01:46:24 +0900 Message-Id: <20220523164626.858340-3-masahiroy@kernel.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220523164626.858340-1-masahiroy@kernel.org> References: <20220523164626.858340-1-masahiroy@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org mod->name is set to the ELF filename with the suffix ".o" stripped. The current code calls strdup() and free() to manipulate the string, but a simpler approach is to pass new_module() with the name length subtracted by 2. Also, check if the passed filename ends with ".o" before stripping it. The current code blindly chops the suffix tmp[strlen(tmp) - 2] = '\0' but it will cause buffer under-run if strlen(tmp) < 2; Signed-off-by: Masahiro Yamada Reviewed-by: Nick Desaulniers --- scripts/mod/modpost.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 843c64eebe8b..77c315dea1a3 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -172,11 +172,11 @@ static struct module *find_module(const char *modname) return NULL; } -static struct module *new_module(const char *modname) +static struct module *new_module(const char *name, size_t namelen) { struct module *mod; - mod = NOFAIL(malloc(sizeof(*mod) + strlen(modname) + 1)); + mod = NOFAIL(malloc(sizeof(*mod) + namelen + 1)); memset(mod, 0, sizeof(*mod)); INIT_LIST_HEAD(&mod->exported_symbols); @@ -184,8 +184,9 @@ static struct module *new_module(const char *modname) INIT_LIST_HEAD(&mod->missing_namespaces); INIT_LIST_HEAD(&mod->imported_namespaces); - strcpy(mod->name, modname); - mod->is_vmlinux = (strcmp(modname, "vmlinux") == 0); + memcpy(mod->name, name, namelen); + mod->name[namelen] = '\0'; + mod->is_vmlinux = (strcmp(mod->name, "vmlinux") == 0); /* * Set mod->is_gpl_compatible to true by default. If MODULE_LICENSE() @@ -2022,16 +2023,14 @@ static void read_symbols(const char *modname) if (!parse_elf(&info, modname)) return; - { - char *tmp; - - /* strip trailing .o */ - tmp = NOFAIL(strdup(modname)); - tmp[strlen(tmp) - 2] = '\0'; - mod = new_module(tmp); - free(tmp); + if (!strends(modname, ".o")) { + error("%s: filename must be suffixed with .o\n", modname); + return; } + /* strip trailing .o */ + mod = new_module(modname, strlen(modname) - strlen(".o")); + if (!mod->is_vmlinux) { license = get_modinfo(&info, "license"); if (!license) @@ -2493,7 +2492,7 @@ static void read_dump(const char *fname) mod = find_module(modname); if (!mod) { - mod = new_module(modname); + mod = new_module(modname, strlen(modname)); mod->from_dump = true; } s = sym_add_exported(symname, mod, gpl_only); From patchwork Mon May 23 16:46:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 12859271 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AD262C433EF for ; Mon, 23 May 2022 16:48:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239152AbiEWQsf (ORCPT ); Mon, 23 May 2022 12:48:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58242 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238868AbiEWQsf (ORCPT ); Mon, 23 May 2022 12:48:35 -0400 Received: from conuserg-09.nifty.com (conuserg-09.nifty.com [210.131.2.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F280D64711; Mon, 23 May 2022 09:48:28 -0700 (PDT) Received: from grover.sesame (133-32-177-133.west.xps.vectant.ne.jp [133.32.177.133]) (authenticated) by conuserg-09.nifty.com with ESMTP id 24NGlJD3027017; Tue, 24 May 2022 01:47:21 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-09.nifty.com 24NGlJD3027017 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1653324442; bh=OPPqcQX7KRBrP4YgLtPFe5APY9NxrEXk3WDczoy7XFA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KXobn1tM1jO44veJR9t6DyZzix/Smavyiyz/0ke8gujtlblK2LG98W2h97RT36vGc K2lxPHqfZqv1gjnr6Jreae4moShUp+H0IRyE/YblJzFBFHavCF+S39CrnA8oSiA/56 YXxJLJC8oCWV9ncTyfFwX9eqXW1grGGvmiyBJ3sd7j6Xh5MjSqtRMOOgQeyfKfxB+B TBsx4GVKQa8SAXNnLY16QsK+oEdTDAKtxcQat/RduDumC+PH2KadmJWcuO1TBGj2IB 6dWRdBiYh/nzCeDlIRGpA2f3oMjtewPtZ84ywRmw4HJk6WkQrx+e8CgKKCur24mPeA vEp7aGJ3/Hxdw== X-Nifty-SrcIP: [133.32.177.133] From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Michal Marek , Nick Desaulniers Subject: [PATCH 4/5] modpost: reuse ARRAY_SIZE() macro for section_mismatch() Date: Tue, 24 May 2022 01:46:25 +0900 Message-Id: <20220523164626.858340-4-masahiroy@kernel.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220523164626.858340-1-masahiroy@kernel.org> References: <20220523164626.858340-1-masahiroy@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org Move ARRAY_SIZE() from file2alias.c to modpost.h to reuse it in section_mismatch(). Also, move the variable 'check' inside the for-loop. Signed-off-by: Masahiro Yamada Reviewed-by: Nick Desaulniers --- scripts/mod/file2alias.c | 2 -- scripts/mod/modpost.c | 7 +++---- scripts/mod/modpost.h | 3 +++ 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 5258247d78ac..e8a9c6816fec 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -734,8 +734,6 @@ static int do_vio_entry(const char *filename, void *symval, return 1; } -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) - static void do_input(char *alias, kernel_ulong_t *arr, unsigned int min, unsigned int max) { diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 77c315dea1a3..48a18b59f908 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1049,8 +1049,6 @@ static const struct sectioncheck *section_mismatch( const char *fromsec, const char *tosec) { int i; - int elems = sizeof(sectioncheck) / sizeof(struct sectioncheck); - const struct sectioncheck *check = §ioncheck[0]; /* * The target section could be the SHT_NUL section when we're @@ -1061,14 +1059,15 @@ static const struct sectioncheck *section_mismatch( if (*tosec == '\0') return NULL; - for (i = 0; i < elems; i++) { + for (i = 0; i < ARRAY_SIZE(sectioncheck); i++) { + const struct sectioncheck *check = §ioncheck[i]; + if (match(fromsec, check->fromsec)) { if (check->bad_tosec[0] && match(tosec, check->bad_tosec)) return check; if (check->good_tosec[0] && !match(tosec, check->good_tosec)) return check; } - check++; } return NULL; } diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h index d9daeff07b83..044bdfb894b7 100644 --- a/scripts/mod/modpost.h +++ b/scripts/mod/modpost.h @@ -97,6 +97,9 @@ static inline void __endian(const void *src, void *dest, unsigned int size) #endif #define NOFAIL(ptr) do_nofail((ptr), #ptr) + +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) + void *do_nofail(void *ptr, const char *expr); struct buffer { From patchwork Mon May 23 16:46:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 12859273 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6163AC433FE for ; Mon, 23 May 2022 16:48:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239159AbiEWQsg (ORCPT ); Mon, 23 May 2022 12:48:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58240 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239108AbiEWQsf (ORCPT ); Mon, 23 May 2022 12:48:35 -0400 Received: from conuserg-09.nifty.com (conuserg-09.nifty.com [210.131.2.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC70D63BCE; Mon, 23 May 2022 09:48:28 -0700 (PDT) Received: from grover.sesame (133-32-177-133.west.xps.vectant.ne.jp [133.32.177.133]) (authenticated) by conuserg-09.nifty.com with ESMTP id 24NGlJD4027017; Tue, 24 May 2022 01:47:22 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-09.nifty.com 24NGlJD4027017 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1653324442; bh=rQdfqreay7lgMbfLRTWkn5/8R74gXvo8Abky+SCmAsU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UL9GGHk5wvmGQsDaOymGQdu/M7wo/ocj2FRT8cWte8EzckRHK/E4v5r+7tIGMmXNW Q5lDu7trmRlsLjX1DHBQH1CGw84wRdX7m/8mhGHXhDGfOinZ7uoBq7QJ+GAjKDnJWa cexgiGKRX9Q824jMoGVgNMBjPn6iuhNWyQzVOvThFwGurC+Sf37+754inPnp/7SD9q VJK3AzzBNAbUav8Yd8uPykNt1DPAsXWl1uLPkjAQEKSlgFZmyKMUBDGWF/0TpmNHOz aQSrbx7nUqvPO0oKQwzxcjA/DaHH78X2k5Z6UXutSJq2O1ml6UYVCAl+ESMd6RdFOP rPUyM2EcBR2vg== X-Nifty-SrcIP: [133.32.177.133] From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Michal Marek , Nick Desaulniers Subject: [PATCH 5/5] modpost: squash if...else if in find_elf_symbol2() Date: Tue, 24 May 2022 01:46:26 +0900 Message-Id: <20220523164626.858340-5-masahiroy@kernel.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220523164626.858340-1-masahiroy@kernel.org> References: <20220523164626.858340-1-masahiroy@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org if ((addr - sym->st_value) < distance) { distance = addr - sym->st_value; near = sym; } else if ((addr - sym->st_value) == distance) { near = sym; } is equivalent to: if ((addr - sym->st_value) <= distance) { distance = addr - sym->st_value; near = sym; } (The else-if part can overwrite 'distance' with the same value). Signed-off-by: Masahiro Yamada Reviewed-by: Nick Desaulniers --- scripts/mod/modpost.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 48a18b59f908..8c8d2a4bc0b0 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1270,13 +1270,9 @@ static Elf_Sym *find_elf_symbol2(struct elf_info *elf, Elf_Addr addr, continue; if (!is_valid_name(elf, sym)) continue; - if (sym->st_value <= addr) { - if ((addr - sym->st_value) < distance) { - distance = addr - sym->st_value; - near = sym; - } else if ((addr - sym->st_value) == distance) { - near = sym; - } + if (sym->st_value <= addr && addr - sym->st_value <= distance) { + distance = addr - sym->st_value; + near = sym; } } return near;