From patchwork Tue Oct 3 17:18:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Volker_Wei=C3=9Fmann?= X-Patchwork-Id: 77041 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9DC08387103F for ; Tue, 3 Oct 2023 17:19:20 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by sourceware.org (Postfix) with ESMTPS id ECE833857C44 for ; Tue, 3 Oct 2023 17:18:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ECE833857C44 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1696353532; x=1696958332; i=volker.weissmann@gmx.de; bh=TZjJR6BOJCM2458DbsE6NxGgxhcvF2XJIr1DZV5BtDg=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=X1fo/9dMi4vyITzHIkBqmx5J7FvAhe1Vmc4jDabCK22sdhC8yMc6HRi1uQrogltmrfyi9Ma5sY9 DuX+BBehja0WixHsPh/9GYfhUN9l7RIap8movflcNf1g4HS25RX4AsCA1N+fMa5TGBxPciiSNGWr3 7KkshB144idJcLTlTeIRvGedfTW3y+KEnV4Xafu+OAHKp5vpd6Hu0KoZHmIqCQ3oqHTMhBXyALJdu LEwWHDFn8Ch/hPPnxq4JuqwL5woI4MljX/k52kq3yg3IEQ6D35vuDy/ytkcJ45aqdzBmAqJdr+pvf uvAcxh7Ec/cXhBVQBw83pW8h8zHOUm9a+HXQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from battle.fritz.box ([46.5.231.81]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M8QWG-1qjLK73e6K-004SJ9; Tue, 03 Oct 2023 19:18:51 +0200 From: =?utf-8?q?Volker_Wei=C3=9Fmann?= To: libc-alpha@sourceware.org Cc: =?utf-8?q?Volker_Wei=C3=9Fmann?= Subject: [PATCH v3] Fix FORTIFY_SOURCE false positive Date: Tue, 3 Oct 2023 19:18:44 +0200 Message-ID: <20231003171844.9586-1-volker.weissmann@gmx.de> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:0IS6Id2IZ3PamLWOAM+GXlyJngWusoDjGBDpBCMYLs2M3Gc9ctG kGsljWxllP46+/iNXIhoKuTBmWsQCctBl0h4enIMhPUYz3j6HTrJ1QKKCMdVpXgZIQTCTFm B6FJVnLf5zw6HUCbsYq8PYnUpUrxypWaD4kkeUWzjWf/IB8Sx2lAh3FcaL4aOkr69L/IgJE 3nCDmq74Vr/kQBQBDBXaw== UI-OutboundReport: notjunk:1;M01:P0:11365TLv23U=;y3r9c9QCOhSFN8Ewt1mRqszXchO JMoxcc/FFNDNsxHYNhFgx+xz54UY0wQrRs74P/HU59Lty+MPk7hWqM8IfY+aYSbl63xJT/v9W /aoKLf1uyw4xf6VlzmIlcsqx6bDFsWjqTfeQpCy9mruZyB9Zx2soLZFKHtEv/ZLPpuznjvKfo iwd/clZKL3wlnobLnseUA8G3gdX79KTgkOGFzvoLZC2TGFHMPCp8asYmewcymPsA1bnZnfJSQ PyJQAqHLuykUywZKiODjgl6LJea7Xn9NlYNpX7zhrljZti1JAxQszKFFSZEvwLeUkYhnR4UWg 5+g9vr8KO4m+yO33F2nAcyNRp6kv2lTmPSJ/N8iYU4TVHqYvOn0NAKoFLQ33phigpdtw5xoYy 5U407EaCYjww4D1IEIpZIpnKAG0oGNzpdpdBaSYG+4txqxNtxmh/VC67RSyQYYqWt1ML1pN6k i04QJh953xMLEUBqDjYXscoyXU3cZQG536/5/7OpraDFyqG87DxZ+K6BkW2aqpKZcaSH3nBxV 3KPjBC200WTS8LTa2HYMojT1/N7b4INfd8D3igxi1b7MvLrqg2uOnEEZyWVAKhd+BxyiD3HWM 9Jtnl1nb4hFy5iEgenuhqbWyItkYiBRLun+sQRXEcOkm1IpIcT4GNGZRyxYixoZCR3q+yyFDP EmQmmSZgz/eLqjKKHoQ+drtYPudupXexqoWrHZHWNeXAtjZqENskgxWTf+odIrRHu0JPfS3eZ sJmrSzy8b1vw7OXuitroCwAb/lpPSyNrwj0A0+eMIGSIZTSJdJqp/ii/O4H4Sc4jhOqMnAEqZ wUBXIgwP+uGsIOJ+tfIU7ocQ28lDepaBLOa/4TyYNHe9LXnrwhIcfP7bjmjvJ+yvsxIfk1vg1 kMZnmzIeoLeVXQ71hVDLkYWS1nERrHyfsQz1XtJbzBF3ALzqhJHj3Vaf0zY55a2dFdx1T0r6h zNOQjA== X-Spam-Status: No, score=-14.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP 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: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org When -D_FORTIFY_SOURCE=2 was given during compilation, sprintf and similar functions will check if their first argument is in read-only memory and exit with *** %n in writable segment detected *** otherwise. To check if the memory is read-only, glibc reads frpm the file "/proc/self/maps". If opening this file fails due to too many open files (EMFILE), glibc will now ignore this error. Fixes [BZ #30932] Signed-off-by: Volker Weißmann Reviewed-by: Siddhesh Poyarekar --- sysdeps/unix/sysv/linux/readonly-area.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- 2.42.0 diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area.c index edc68873f6..ba32372ebb 100644 --- a/sysdeps/unix/sysv/linux/readonly-area.c +++ b/sysdeps/unix/sysv/linux/readonly-area.c @@ -42,7 +42,9 @@ __readonly_area (const char *ptr, size_t size) to the /proc filesystem if it is set[ug]id. There has been no willingness to change this in the kernel so far. */ - || errno == EACCES) + || errno == EACCES + /* Process has reached the maximum number of open files. */ + || errno == EMFILE) return 1; return -1; }