From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from burlywood.yew.relay.mailchannels.net (burlywood.yew.relay.mailchannels.net [23.83.220.26]) by sourceware.org (Postfix) with ESMTPS id 099AC3871020 for ; Fri, 30 Jun 2023 15:25:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 099AC3871020 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gotplt.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gotplt.org X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id A07714194E; Fri, 30 Jun 2023 15:25:47 +0000 (UTC) Received: from pdx1-sub0-mail-a286.dreamhost.com (unknown [127.0.0.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 26DBA4156B; Fri, 30 Jun 2023 15:25:46 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1688138746; a=rsa-sha256; cv=none; b=10Xib8d+IpXScVHpLTfJ/5mQJakfuYH8ey5nxD4Z1ND/xOawsgLuHv5UNoug0BRl1kyDDd VDD1+1eUgrMFfR3omPzvQkXzQxwP5JZWTprUvqDCufeAnVpr+Me4k3GbHEJ0v8DBJ6CEEo U5vhiOUNNu7iRLL2I2D9dNZqbHqymNb9NS+RzbiKVGV51A3AEipd1BfJ9+YC5rM694vC2R Xx4ZLMTvtA3F1tw+ODpn1MjnKs7gxkII9mWhK+VJWnOe9eucNNg+NGtbuQ1IYINDcunBF4 aNivlwyMjKkq3nOyNO9xvsYCjbOvaH1X6+AAf0LcokoVuwizDI9YiEdKkDPjyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1688138746; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=u2p7dtOn7IOdzHHgXQ1YlkMUS0PsJkV4r/gd5tlkWxU=; b=H9fiEqmuSurx5NQRfzSthhQRvt1t5CAarQiRlNrEuDotMkEXf5KSvjXk6DcoAvhCUTfEvu 6ttk2UKOGNS/XuJ88jTlFpyCNSuv2IZOLrkcVQ+amewt/dbd0L3dBwUEcYuiBdJjNhZWd5 arpFAzirTEVtU0q1k6Ki9jKwsvKiN/mflq3p9QkAspdteVsph+pr0oksOWmQrMjDX8SdNA O3jISjAgMQvYo3phoKVF3pYr9CTjn21336DIoBtE9733Ry4RRoh89feUpSeZuLxbbxuXwC ySMQlgHsMm2+aCfSt+aBIjS+WhL/PBKBbHwXSI4L68R7iHx4H0akP2NU8BkZSQ== ARC-Authentication-Results: i=1; rspamd-85899d6fcc-92h4j; auth=pass smtp.auth=dreamhost smtp.mailfrom=siddhesh@gotplt.org X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org X-MC-Relay: Good X-MailChannels-SenderId: dreamhost|x-authsender|siddhesh@gotplt.org X-MailChannels-Auth-Id: dreamhost X-Harbor-Occur: 7e1795a632668f86_1688138747477_3883744539 X-MC-Loop-Signature: 1688138747477:395709992 X-MC-Ingress-Time: 1688138747477 Received: from pdx1-sub0-mail-a286.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.104.253.208 (trex/6.9.1); Fri, 30 Jun 2023 15:25:47 +0000 Received: from [192.168.0.182] (bras-vprn-toroon4834w-lp130-09-174-91-45-44.dsl.bell.ca [174.91.45.44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) (Authenticated sender: siddhesh@gotplt.org) by pdx1-sub0-mail-a286.dreamhost.com (Postfix) with ESMTPSA id 4Qszfd4fmXzn7; Fri, 30 Jun 2023 08:25:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gotplt.org; s=dreamhost; t=1688138745; bh=u2p7dtOn7IOdzHHgXQ1YlkMUS0PsJkV4r/gd5tlkWxU=; h=Date:Subject:To:From:Content-Type:Content-Transfer-Encoding; b=JkYkOEV3GlpsCM5RNk9EBGnouIVUX845KT/HJdTbWjsFmUwe9bbQ8ktNWY9BgjC4J GNmjJ68beOiVTcDUFx4AKOZs/sDPq9DikjoKVfpSIprkutUQzCVGvlrw2hNhP6xHKp p/QbjJn+WYPonO9AluLrRrI56RUibM6L8Yu0n2soorVTmlMGA/yLUfLA9w06NY08Rx TIsXlE9PLCVcY29Kiv09YtYJCDR1AfV3Ur4LEc3RT2u4w+QqoGQyWlfIAwafBfyBJ7 pbmxBn3FqhmB++VfHBfwrqjbkCt6rhK1HrOTInkzsyBfJ/z2ed4LOKozt+ETl8Z2Sl 5+X+5+flkweOA== Message-ID: Date: Fri, 30 Jun 2023 11:25:44 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v3 10/16] unistd: Avoid PLT entries with _FORTIFY_SOURCE Content-Language: en-US To: =?UTF-8?B?RnLDqWTDqXJpYyBCw6lyYXQ=?= , libc-alpha@sourceware.org References: <20230628084246.778302-1-fberat@redhat.com> <20230628084246.778302-11-fberat@redhat.com> From: Siddhesh Poyarekar In-Reply-To: <20230628084246.778302-11-fberat@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3037.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,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 List-Id: On 2023-06-28 04:42, Frédéric Bérat wrote: > The change is meant to avoid unwanted PLT entries for the read_chk, > getdomainname_chk and getlogin_r_chk routines when _FORTIFY_SOURCE is set. > --- > debug/getdomainname_chk.c | 1 + > debug/read_chk.c | 1 + > include/unistd.h | 4 ++++ > login/getlogin_r_chk.c | 1 + > posix/bits/unistd-decl.h | 6 +++--- > 5 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/debug/getdomainname_chk.c b/debug/getdomainname_chk.c > index ccea1b2d9e..c0e6c7bd4b 100644 > --- a/debug/getdomainname_chk.c > +++ b/debug/getdomainname_chk.c > @@ -26,3 +26,4 @@ __getdomainname_chk (char *buf, size_t buflen, size_t nreal) > > return getdomainname (buf, buflen); > } > +libc_hidden_builtin_def (__getdomainname_chk) getdomainname is not a builtin, so perhaps just use libc_hidden_def? It doesn't make a difference in practice, but I reckon we may make a distinction in future and this might slip up. Builtins are defined in gcc sources, see gcc/builtins.def. As an aside though, I wonder if we've ever made this distinction, but that's a QoI issue at the moment. > diff --git a/debug/read_chk.c b/debug/read_chk.c > index 17588736a1..dfd87206b2 100644 > --- a/debug/read_chk.c > +++ b/debug/read_chk.c > @@ -25,3 +25,4 @@ __read_chk (int fd, void *buf, size_t nbytes, size_t buflen) > > return __read (fd, buf, nbytes); > } > +libc_hidden_builtin_def (__read_chk) Likewise, not a builtin. > diff --git a/include/unistd.h b/include/unistd.h > index b042a485f9..243e52b471 100644 > --- a/include/unistd.h > +++ b/include/unistd.h > @@ -32,6 +32,10 @@ libc_hidden_proto (readlinkat) > libc_hidden_proto (fsync) > libc_hidden_proto (fdatasync) > > +libc_hidden_builtin_proto (__read_chk) > +libc_hidden_builtin_proto (__getdomainname_chk) > +libc_hidden_builtin_proto (__getlogin_r_chk) Likewise, libc_hidden_proto. > + > /* Now define the internal interfaces. */ > extern int __access (const char *__name, int __type); > libc_hidden_proto (__access) > diff --git a/login/getlogin_r_chk.c b/login/getlogin_r_chk.c > index 12a0d12bd4..576567f287 100644 > --- a/login/getlogin_r_chk.c > +++ b/login/getlogin_r_chk.c > @@ -26,3 +26,4 @@ __getlogin_r_chk (char *buf, size_t buflen, size_t nreal) > > return getlogin_r (buf, buflen); > } > +libc_hidden_builtin_def (__getlogin_r_chk) Likewise. > diff --git a/posix/bits/unistd-decl.h b/posix/bits/unistd-decl.h > index 2d0f7a4456..2603039767 100644 > --- a/posix/bits/unistd-decl.h > +++ b/posix/bits/unistd-decl.h > @@ -26,7 +26,7 @@ > extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, > size_t __buflen) > __wur __attr_access ((__write_only__, 2, 3)); > -extern ssize_t __REDIRECT (__read_alias, (int __fd, void *__buf, > +extern ssize_t __REDIRECT_FORTIFY (__read_alias, (int __fd, void *__buf, > size_t __nbytes), read) > __wur __attr_access ((__write_only__, 2, 3)); > extern ssize_t __REDIRECT (__read_chk_warn, > @@ -157,7 +157,7 @@ extern int __REDIRECT_NTH (__ttyname_r_chk_warn, > #ifdef __USE_POSIX199506 > extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) > __nonnull ((1)) __attr_access ((__write_only__, 1, 2)); > -extern int __REDIRECT (__getlogin_r_alias, (char *__buf, size_t __buflen), > +extern int __REDIRECT_FORTIFY (__getlogin_r_alias, (char *__buf, size_t __buflen), > getlogin_r) __nonnull ((1)); > extern int __REDIRECT (__getlogin_r_chk_warn, > (char *__buf, size_t __buflen, size_t __nreal), > @@ -184,7 +184,7 @@ extern int __REDIRECT_NTH (__gethostname_chk_warn, > #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_UNIX98) > extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) > __THROW __nonnull ((1)) __wur __attr_access ((__write_only__, 1, 2)); > -extern int __REDIRECT_NTH (__getdomainname_alias, (char *__buf, > +extern int __REDIRECT_FORTIFY_NTH (__getdomainname_alias, (char *__buf, > size_t __buflen), > getdomainname) __nonnull ((1)) > __wur __attr_access ((__write_only__, 1, 2));