From patchwork Sat Nov 25 10:31:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 13468447 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A96463234 for ; Sat, 25 Nov 2023 10:31:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MVlOFapV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4015CC433C8; Sat, 25 Nov 2023 10:31:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700908292; bh=1NjYyVMTbEYrYJbWYo16fYRJ4go93r4tTFjTVNLyfms=; h=From:To:Cc:Subject:Date:From; b=MVlOFapVpx90KH1wMWShYB/xzzNDh16Atogs82J3zghXoqUFi+xcapJ6fODrvVGTj f8PKozrX4yioUdDuibC4/52x5/HDy9jh35vyHoK+iBupoTA71fJr+6k4z6645jg/H3 1DeDWjz3kfsDpEBTUtmK/rSdVRrAMSH8fE0niSrFj27KTeohvchgKXObM8Yv+iBfH0 zwpEh9eRbOZOChuT7cADbeikGoVOADxGNRSWqov7vBf+f+53FjfsWulDh6Q92P88FW ydTuV0NieSNCF0TTpjTj4wRpSEmRMBggu7emM7j7pbGQcOdiGN2CUYYWPjgOS4m9qy FTIcDOzAUT3fw== From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Nathan Chancellor , Nicolas Schier , Masahiro Yamada Subject: [PATCH 1/3] modpost: move __attribute__((format(printf, 2, 3))) to modpost.h Date: Sat, 25 Nov 2023 19:31:14 +0900 Message-Id: <20231125103116.797608-1-masahiroy@kernel.org> X-Mailer: git-send-email 2.40.1 Precedence: bulk X-Mailing-List: linux-kbuild@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This attribute must be added to the function declaration in a header for comprehensive checking of all the callsites. Fixes: 6d9a89ea4b06 ("kbuild: declare the modpost error functions as printf like") Signed-off-by: Masahiro Yamada Reviewed-by: Nathan Chancellor --- scripts/mod/modpost.c | 3 +-- scripts/mod/modpost.h | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index cb6406f485a9..ca0a90158f85 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -60,8 +60,7 @@ static unsigned int nr_unresolved; #define MODULE_NAME_LEN (64 - sizeof(Elf_Addr)) -void __attribute__((format(printf, 2, 3))) -modpost_log(enum loglevel loglevel, const char *fmt, ...) +void modpost_log(enum loglevel loglevel, const char *fmt, ...) { va_list arglist; diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h index 69baf014da4f..9fe974dc1a52 100644 --- a/scripts/mod/modpost.h +++ b/scripts/mod/modpost.h @@ -197,7 +197,8 @@ enum loglevel { LOG_FATAL }; -void modpost_log(enum loglevel loglevel, const char *fmt, ...); +void __attribute__((format(printf, 2, 3))) +modpost_log(enum loglevel loglevel, const char *fmt, ...); /* * warn - show the given message, then let modpost continue running, still From patchwork Sat Nov 25 10:31:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 13468448 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ADE10D29C for ; Sat, 25 Nov 2023 10:31:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Hy1V/roH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9869DC433CB; Sat, 25 Nov 2023 10:31:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700908293; bh=UQohXr4Q1HYdYBXHCpAgYPqYqu05A8PQAIBFeD9Rs4c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Hy1V/roHQPewcPQbyO4u0xgO+U/7AUQ6zHeTG+3A4iGhHH8I2gAOF+bTlcFIZNaqy E6kbL5ccawosHgiy1iOLfy2rgMDXKQQzrflVIUepKiyjaRVORIA1uqy35KeyT2r41s CYCoiG1Hh8xCxCIEFCGr9INRlFd4O6FHtPAFPb4OO3t5vg+62alSTU1X1z9irnvnDw QrzXFlJpbkKY7fWGDNcxeOKUpbOwpiLwaswfOm0c59LIR7GOPVwT4FoUCaA7lg1YqO xAqtE4SqovC/rVLuV7UvFrY9+K9D/9Qwif8QwF7uF3pzDhDC83pyd8niOrKYqSUFze VLZZB6DeGtB3g== From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Nathan Chancellor , Nicolas Schier , Masahiro Yamada Subject: [PATCH 2/3] modpost: remove unreachable code after fatal() Date: Sat, 25 Nov 2023 19:31:15 +0900 Message-Id: <20231125103116.797608-2-masahiroy@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20231125103116.797608-1-masahiroy@kernel.org> References: <20231125103116.797608-1-masahiroy@kernel.org> Precedence: bulk X-Mailing-List: linux-kbuild@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 fatal() never returns. Remove unreachable code. Signed-off-by: Masahiro Yamada Reviewed-by: Nathan Chancellor --- scripts/mod/modpost.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index ca0a90158f85..013fc5031bc7 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -473,11 +473,9 @@ static int parse_elf(struct elf_info *info, const char *filename) fatal("%s: not relocatable object.", filename); /* Check if file offset is correct */ - if (hdr->e_shoff > info->size) { + if (hdr->e_shoff > info->size) fatal("section header offset=%lu in file '%s' is bigger than filesize=%zu\n", (unsigned long)hdr->e_shoff, filename, info->size); - return 0; - } if (hdr->e_shnum == SHN_UNDEF) { /* @@ -515,12 +513,11 @@ static int parse_elf(struct elf_info *info, const char *filename) const char *secname; int nobits = sechdrs[i].sh_type == SHT_NOBITS; - if (!nobits && sechdrs[i].sh_offset > info->size) { + if (!nobits && sechdrs[i].sh_offset > info->size) fatal("%s is truncated. sechdrs[i].sh_offset=%lu > sizeof(*hrd)=%zu\n", filename, (unsigned long)sechdrs[i].sh_offset, sizeof(*hdr)); - return 0; - } + secname = secstrings + sechdrs[i].sh_name; if (strcmp(secname, ".modinfo") == 0) { if (nobits) From patchwork Sat Nov 25 10:31:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 13468449 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E36063BD for ; Sat, 25 Nov 2023 10:31:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PDxIF4NT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E947FC433C8; Sat, 25 Nov 2023 10:31:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700908294; bh=zXAi/9CNLqqmyNpA1eHsdMgrholOb1Cem6oT1U9JQNo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PDxIF4NTuqIxsAI3HnxjK3nRVHtYRRrbTyEAn91gJaUSI+4jcXTx7+ZmEb0DiRpuw ZpEB3K3hDfONj7vO+ClsEoi4G6OaSM5mBhq8t3yFd5gJBfju+qPh5dxc6/7QmP8AET QjHILXceyTEE+584cTyh6nQKAlk+1jLk7sXrqP8/oZBVl3QT0UVXbEpwlO1XfxwZVs aeM0IfKjS4y6KQ9Hacx76TpyKvhbQ0fbbjccFIR9qun5Y23cj/Cep7TC+CNO1iMhma bHKSgMjUFLo5bEgF7sfoYFvBATQgsbUGvLZ8IVDR2kji2kUgCw4iJ42E8l/BkXm6nm IYN+/qEqZ3sDA== From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Nathan Chancellor , Nicolas Schier , Masahiro Yamada Subject: [PATCH 3/3] modpost: move exit(1) for fatal() to modpost.h Date: Sat, 25 Nov 2023 19:31:16 +0900 Message-Id: <20231125103116.797608-3-masahiroy@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20231125103116.797608-1-masahiroy@kernel.org> References: <20231125103116.797608-1-masahiroy@kernel.org> Precedence: bulk X-Mailing-List: linux-kbuild@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 fatal() never returns, but compilers are not aware of this fact because exit(1) is called within the modpost_log() definition. Move exit(1) to the fatal() macro so that compilers can identify unreachable code flows. Remove the initializer for 'taddr' in section_rel(), as compilers now recognize this is not an uninitialized bug. Signed-off-by: Masahiro Yamada Reviewed-by: Nathan Chancellor --- scripts/mod/modpost.c | 4 +--- scripts/mod/modpost.h | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 013fc5031bc7..696c583a14ec 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -84,8 +84,6 @@ void modpost_log(enum loglevel loglevel, const char *fmt, ...) vfprintf(stderr, fmt, arglist); va_end(arglist); - if (loglevel == LOG_FATAL) - exit(1); if (loglevel == LOG_ERROR) error_occurred = true; } @@ -1415,7 +1413,7 @@ static void section_rel(struct module *mod, struct elf_info *elf, for (rel = start; rel < stop; rel++) { Elf_Sym *tsym; - Elf_Addr taddr = 0, r_offset; + Elf_Addr taddr, r_offset; unsigned int r_type, r_sym; void *loc; diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h index 9fe974dc1a52..aaa67b24775e 100644 --- a/scripts/mod/modpost.h +++ b/scripts/mod/modpost.h @@ -215,4 +215,4 @@ modpost_log(enum loglevel loglevel, const char *fmt, ...); */ #define warn(fmt, args...) modpost_log(LOG_WARN, fmt, ##args) #define error(fmt, args...) modpost_log(LOG_ERROR, fmt, ##args) -#define fatal(fmt, args...) modpost_log(LOG_FATAL, fmt, ##args) +#define fatal(fmt, args...) do { modpost_log(LOG_FATAL, fmt, ##args); exit(1); } while (1)