From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 6B2EF3858413 for ; Tue, 9 Aug 2022 08:29:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6B2EF3858413 Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out2.suse.de (Postfix) with ESMTP id 998F11FDDC for ; Tue, 9 Aug 2022 08:29:53 +0000 (UTC) Received: from hawking.suse.de (unknown [10.168.4.11]) by relay2.suse.de (Postfix) with ESMTP id 945E42C196 for ; Tue, 9 Aug 2022 08:29:53 +0000 (UTC) Received: by hawking.suse.de (Postfix, from userid 17005) id 4F894444B11; Tue, 9 Aug 2022 10:29:53 +0200 (CEST) From: Andreas Schwab To: elfutils-devel@sourceware.org Subject: [PATCH] elflint: Allow zero p_memsz for PT_RISCV_ATTRIBUTES X-Yow: .. my NOSE is NUMB! Date: Tue, 09 Aug 2022 10:29:53 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Aug 2022 08:29:55 -0000 The RISCV_ATTRIBUTES segment is not meant to be loaded. Signed-off-by: Andreas Schwab --- src/ChangeLog | 5 +++++ src/elflint.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 42ce6640..fbcef29e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2022-08-09 Andreas Schwab + + * elflint.c (check_program_header): Don't complain about p_filesz + > p_memsz if p_memsz is zero and p_type is PT_RISCV_ATTRIBUTES. + 2022-08-01 Mark Wielaard * readelf.c (handle_dynamic): Pass start of buffer to memrchr. diff --git a/src/elflint.c b/src/elflint.c index d919936f..b0e5415e 100644 --- a/src/elflint.c +++ b/src/elflint.c @@ -4731,7 +4731,10 @@ section [%2zu] '%s' must not be executable\n"), } if (phdr->p_filesz > phdr->p_memsz - && (phdr->p_memsz != 0 || phdr->p_type != PT_NOTE)) + && (phdr->p_memsz != 0 + || (phdr->p_type != PT_NOTE + && !(ehdr->e_machine == EM_RISCV + && phdr->p_type == PT_RISCV_ATTRIBUTES)))) ERROR (_("\ program header entry %d: file size greater than memory size\n"), cnt); -- 2.37.1 -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."