From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by sourceware.org (Postfix) with ESMTPS id 6818D3882057 for ; Tue, 3 Oct 2023 13:22:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6818D3882057 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=1696339365; x=1696944165; i=volker.weissmann@gmx.de; bh=J2ylWwfF8k22/+cOYTo3CGfQ8g77yHW14PMjdsfYt7k=; h=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To; b=UvEmhgHIbAXcfCscAVYlb4T9CHhOYz2VQYuwrBn9I8sL5Y5p7BDdNgsU50EB9j5/w2fgV4Y/BCP z6yQfxYsbMqxYYFOlL5hQvbE/jIF4g0Y6D76Cj68/dB/45CwP8FvUJ2vQCzSH4TUdHgmZguWUu0Xl zaTEPl3iZDsyaS+EaUjUI2j8vaYPufx7iiaigOfjvzoKHIzH0yGttgVS/lvcZL7JJh9Us+e5kppta +5J09kWWAvtzXiuxwanPOdqHEE7jm/k4+tZhx0hFO5TCRdCheqSrVtGrSMjUKQyiIS8XGFVibORvn bpbfouYIbXcQ/9wO0evoRJdFTp1c+KIFODGg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.51] ([46.5.230.254]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M59C8-1qmYtc3jpE-001Def; Tue, 03 Oct 2023 15:22:44 +0200 Message-ID: <7b06c348-0e48-45be-9d72-124c53c7960f@gmx.de> Date: Tue, 3 Oct 2023 15:22:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] Fix FORTIFY_SOURCE false positive Content-Language: en-US To: Siddhesh Poyarekar , libc-alpha@sourceware.org References: <20231002155339.2571514-1-volker.weissmann@gmx.de> <74305391-aad9-de52-9ad7-07df57e727f6@gotplt.org> From: =?UTF-8?Q?Volker_Wei=C3=9Fmann?= In-Reply-To: <74305391-aad9-de52-9ad7-07df57e727f6@gotplt.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:XfsUG0N45SXJ1LgRdJwvT0WK2THlZv6IJbwWJ2B9lf/Vs5IqxYn lfd6fSfN7qLapba74dEAoj+J5dFTZldJm91ZKMCdmERhRblh44ynFtkb5Z4BklO1QYb2aO+ mdED2TM3PBqChhADWFBx5xTeDzl8nASVDLG76cQXJBCEGfmBGNRqDcXACN07dVdXHWOvSc7 CBOn/dAPSb775jTjo38GQ== UI-OutboundReport: notjunk:1;M01:P0:Km8CzjXljWs=;vD0/7RxiMjMEGJzQu++j79P/5M6 NyikSiy2PHu3X8TSvoPBrZd7t5dy7vl62i31ItYRGuoc92tK03E5JhhYYCsQHuDr5pVOd9WYj cwMCwz+JmHa9hItkBaFBFVj/XwltOWnvJV9kzJ0TwT5SH4iPgkTDDDOi5LRgR9VNuz98gKvWf naHGc4N5mJUVLMvEDs0rQ7QeXVWOi7Qrtywe1gnvihW0lhjDrBN2zTwzY+PYov0HeTDA8xSjn EGFx4aKYMCNkrHlbztwTh3goNbR3jXEbZlXrTWsR1HM7CofDwVD05EImY1DcDXJ4nemyl40mQ 8apPEgEAv6Ul/qwrc3RW/jg8Zb5T7K5xrVk94jpHfUU8tY2wDE6JaTBomiwTYYeL9hjnHfrJo WaCS5yh+iDLBFo6MJeViMaqJVTWfUVQuew/rcE6cxcchAs9/542vabksQ+7eQxAijRmkHD8e+ 2eGdtFPoT6Lg+JbUsY/tyPTk6Eble9X9jEJXpp4I4DVusfsryg5xv2J+zN10sjh+FJsujAHPf mqUCO1eL32+iWkcxUatfux6YFJ3eEH/bNzYIdD+Tvf39OwwnjFYRa+OhhrmISjvr6yt02ppFT m8ztTVVyEpbEe2fUOZ/sZxcQmxlZ4jbVAZtWnes2iqv7NqtDsS054ID6Bp+T/UgY4DctWRlRW 1LR6IY0PMjZ2IrNG/72nOFsZoYBQmu7GPzc9A4t+fP36aj0o0/ACC6X3R2jpnz2prQHQ0ONU4 t24nhU0PANSqDL9nX679/vyj9PfrDlbk6th6QBci4AZy/NGJvMOslQ9oD4lh2jz0m/I5rCWUB IoVhu4DjgsQMb/I/12TfwjpGdQ9OEvR9kjWOYe3kfTwHzhP7wkbndzELbD1baGh426M3xoQwz kchEQxP+weOrfyGv+uBMGOGOaHMEFcMgzEMGn/3EnUtwIfXYy7aqjrONzcwTC9DL8dCjPUeBW 8pkQUU5D+rsx47L7k8VdJF/f+1I= X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,BODY_8BITS,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 List-Id: On 02.10.23 20:00, Siddhesh Poyarekar wrote: > > Also, if you don't have a copyright assignment on file with the FSF, > could you add a Signed-off-by to certify your contribution? This is my first patch I sent to a mailing list, so forgive me if the formatting is wrong: When -D_FORTIFY_SOURCE=3D2 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 form the file "/proc/self/maps". If opening this file fails due to too many open files (EMFILE), glibc will now ignore this error. Signed-off-by: Volker Wei=C3=9Fmann =2D-- =C2=A0sysdeps/unix/sysv/linux/readonly-area.c | 10 +++++++++- =C2=A01 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area.c index edc68873f6..629163461a 100644 =2D-- a/sysdeps/unix/sysv/linux/readonly-area.c +++ b/sysdeps/unix/sysv/linux/readonly-area.c @@ -42,7 +42,15 @@ __readonly_area (const char *ptr, size_t size) =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 to the /proc filesystem= if it is set[ug]id.=C2=A0 There has =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 been no willingness to = change this in the kernel so =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 far.=C2=A0 */ -=C2=A0=C2=A0=C2=A0 =C2=A0 || errno =3D=3D EACCES) +=C2=A0=C2=A0=C2=A0 =C2=A0 || errno =3D=3D EACCES +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* Example code to= trigger EMFILE: +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 while(1) { +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 FILE *= file =3D fopen("/dev/zero", "r"); +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 assert= (file !=3D NULL); +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 If your libc was c= ompiled with -D_FORTIFY_SOURCE=3D2, we run +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 into this if claus= e here. */ +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || errno =3D=3D EM= FILE) =C2=A0=C2=A0=C2=A0=C2=A0 return 1; =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -1; =C2=A0=C2=A0=C2=A0=C2=A0 } =2D- 2.42.0 > > Thanks, > Sid