public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162]
@ 2022-05-20 15:06 Sergei Trofimovich
  2022-05-23  3:50 ` Siddhesh Poyarekar
  2022-05-23  7:19 ` Siddhesh Poyarekar
  0 siblings, 2 replies; 8+ messages in thread
From: Sergei Trofimovich @ 2022-05-20 15:06 UTC (permalink / raw)
  To: libc-alpha; +Cc: Siddhesh Poyarekar, Sergei Trofimovich

From: Sergei Trofimovich <slyich@gmail.com>

commit e938c0274 "Don't add access size hints to fortifiable functions"
converted a few '__attr_access ((...))' into '__fortified_attr_access (...)'
calls.

But one of conversions had double parentheses of '__fortified_attr_access (...)'.

Noticed as a gnat6 build failure:

    /<<NIX>>-glibc-2.34-210-dev/include/bits/string_fortified.h:110:50: error: macro "__fortified_attr_access" requires 3 arguments, but only 1 given

The change fixes parentheses.

Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
---
 string/bits/string_fortified.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/string/bits/string_fortified.h b/string/bits/string_fortified.h
index f4a5dfc2e5..149ebbb08b 100644
--- a/string/bits/string_fortified.h
+++ b/string/bits/string_fortified.h
@@ -107,7 +107,7 @@ __NTH (stpncpy (char *__dest, const char *__src, size_t __n))
 # else
 extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n,
 			    size_t __destlen) __THROW
-  __fortified_attr_access ((__write_only__, 1, 3))
+  __fortified_attr_access (__write_only__, 1, 3)
   __attr_access ((__read_only__, 2));
 extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src,
 					       size_t __n), stpncpy);
-- 
2.36.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162]
  2022-05-20 15:06 [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162] Sergei Trofimovich
@ 2022-05-23  3:50 ` Siddhesh Poyarekar
  2022-05-23  6:54   ` Sergei Trofimovich
  2022-05-23  7:19 ` Siddhesh Poyarekar
  1 sibling, 1 reply; 8+ messages in thread
From: Siddhesh Poyarekar @ 2022-05-23  3:50 UTC (permalink / raw)
  To: Sergei Trofimovich, libc-alpha; +Cc: Sergei Trofimovich

On 20/05/2022 20:36, Sergei Trofimovich via Libc-alpha wrote:
> From: Sergei Trofimovich <slyich@gmail.com>
> 
> commit e938c0274 "Don't add access size hints to fortifiable functions"
> converted a few '__attr_access ((...))' into '__fortified_attr_access (...)'
> calls.
> 
> But one of conversions had double parentheses of '__fortified_attr_access (...)'.
> 
> Noticed as a gnat6 build failure:
> 
>      /<<NIX>>-glibc-2.34-210-dev/include/bits/string_fortified.h:110:50: error: macro "__fortified_attr_access" requires 3 arguments, but only 1 given
> 
> The change fixes parentheses.
> 
> Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
> ---

Oops, LGTM, I'll push it shortly, thanks!

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>

>   string/bits/string_fortified.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/string/bits/string_fortified.h b/string/bits/string_fortified.h
> index f4a5dfc2e5..149ebbb08b 100644
> --- a/string/bits/string_fortified.h
> +++ b/string/bits/string_fortified.h
> @@ -107,7 +107,7 @@ __NTH (stpncpy (char *__dest, const char *__src, size_t __n))
>   # else
>   extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n,
>   			    size_t __destlen) __THROW
> -  __fortified_attr_access ((__write_only__, 1, 3))
> +  __fortified_attr_access (__write_only__, 1, 3)
>     __attr_access ((__read_only__, 2));
>   extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src,
>   					       size_t __n), stpncpy);


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162]
  2022-05-23  3:50 ` Siddhesh Poyarekar
@ 2022-05-23  6:54   ` Sergei Trofimovich
  2022-05-23  6:55     ` Siddhesh Poyarekar
  0 siblings, 1 reply; 8+ messages in thread
From: Sergei Trofimovich @ 2022-05-23  6:54 UTC (permalink / raw)
  To: Siddhesh Poyarekar; +Cc: libc-alpha

On Mon, 23 May 2022 09:20:15 +0530
Siddhesh Poyarekar <siddhesh@sourceware.org> wrote:

> On 20/05/2022 20:36, Sergei Trofimovich via Libc-alpha wrote:
> > From: Sergei Trofimovich <slyich@gmail.com>
> > 
> > commit e938c0274 "Don't add access size hints to fortifiable functions"
> > converted a few '__attr_access ((...))' into '__fortified_attr_access (...)'
> > calls.
> > 
> > But one of conversions had double parentheses of '__fortified_attr_access (...)'.
> > 
> > Noticed as a gnat6 build failure:
> > 
> >      /<<NIX>>-glibc-2.34-210-dev/include/bits/string_fortified.h:110:50: error: macro "__fortified_attr_access" requires 3 arguments, but only 1 given
> > 
> > The change fixes parentheses.
> > 
> > Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
> > ---  
> 
> Oops, LGTM, I'll push it shortly, thanks!

Sounds good. Would it be possible to backport it to 2.34 branch as well?
I initially observed it there.

Thank you!

> Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
> 
> >   string/bits/string_fortified.h | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/string/bits/string_fortified.h b/string/bits/string_fortified.h
> > index f4a5dfc2e5..149ebbb08b 100644
> > --- a/string/bits/string_fortified.h
> > +++ b/string/bits/string_fortified.h
> > @@ -107,7 +107,7 @@ __NTH (stpncpy (char *__dest, const char *__src, size_t __n))
> >   # else
> >   extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n,
> >   			    size_t __destlen) __THROW
> > -  __fortified_attr_access ((__write_only__, 1, 3))
> > +  __fortified_attr_access (__write_only__, 1, 3)
> >     __attr_access ((__read_only__, 2));
> >   extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src,
> >   					       size_t __n), stpncpy);  
> 


-- 

  Sergei

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162]
  2022-05-23  6:54   ` Sergei Trofimovich
@ 2022-05-23  6:55     ` Siddhesh Poyarekar
  0 siblings, 0 replies; 8+ messages in thread
From: Siddhesh Poyarekar @ 2022-05-23  6:55 UTC (permalink / raw)
  To: Sergei Trofimovich; +Cc: libc-alpha

On 23/05/2022 12:24, Sergei Trofimovich wrote:
> On Mon, 23 May 2022 09:20:15 +0530
> Siddhesh Poyarekar <siddhesh@sourceware.org> wrote:
> 
>> On 20/05/2022 20:36, Sergei Trofimovich via Libc-alpha wrote:
>>> From: Sergei Trofimovich <slyich@gmail.com>
>>>
>>> commit e938c0274 "Don't add access size hints to fortifiable functions"
>>> converted a few '__attr_access ((...))' into '__fortified_attr_access (...)'
>>> calls.
>>>
>>> But one of conversions had double parentheses of '__fortified_attr_access (...)'.
>>>
>>> Noticed as a gnat6 build failure:
>>>
>>>       /<<NIX>>-glibc-2.34-210-dev/include/bits/string_fortified.h:110:50: error: macro "__fortified_attr_access" requires 3 arguments, but only 1 given
>>>
>>> The change fixes parentheses.
>>>
>>> Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
>>> ---
>>
>> Oops, LGTM, I'll push it shortly, thanks!
> 
> Sounds good. Would it be possible to backport it to 2.34 branch as well?
> I initially observed it there.

Yes, I'll be doing that.

Thanks,
Siddhesh

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162]
  2022-05-20 15:06 [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162] Sergei Trofimovich
  2022-05-23  3:50 ` Siddhesh Poyarekar
@ 2022-05-23  7:19 ` Siddhesh Poyarekar
  2022-05-23  7:23   ` Siddhesh Poyarekar
  2022-05-23  8:24   ` Sergei Trofimovich
  1 sibling, 2 replies; 8+ messages in thread
From: Siddhesh Poyarekar @ 2022-05-23  7:19 UTC (permalink / raw)
  To: Sergei Trofimovich, libc-alpha; +Cc: Sergei Trofimovich

On 20/05/2022 20:36, Sergei Trofimovich wrote:
> From: Sergei Trofimovich <slyich@gmail.com>
> 
> commit e938c0274 "Don't add access size hints to fortifiable functions"
> converted a few '__attr_access ((...))' into '__fortified_attr_access (...)'
> calls.
> 
> But one of conversions had double parentheses of '__fortified_attr_access (...)'.
> 
> Noticed as a gnat6 build failure:
> 
>      /<<NIX>>-glibc-2.34-210-dev/include/bits/string_fortified.h:110:50: error: macro "__fortified_attr_access" requires 3 arguments, but only 1 given
> 
> The change fixes parentheses.
> 
> Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
> ---
>   string/bits/string_fortified.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/string/bits/string_fortified.h b/string/bits/string_fortified.h
> index f4a5dfc2e5..149ebbb08b 100644
> --- a/string/bits/string_fortified.h
> +++ b/string/bits/string_fortified.h
> @@ -107,7 +107,7 @@ __NTH (stpncpy (char *__dest, const char *__src, size_t __n))
>   # else
>   extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n,
>   			    size_t __destlen) __THROW
> -  __fortified_attr_access ((__write_only__, 1, 3))
> +  __fortified_attr_access (__write_only__, 1, 3)
>     __attr_access ((__read_only__, 2));
>   extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src,
>   					       size_t __n), stpncpy);

Hi Sergei, one question before I pull this in; how did this even happen? 
  The build flags don't appear to have -D_FORTIFY_SOURCE, which is 
prerequisite to including this file.  Also, that bit in the header is 
reachable only with an older compiler, e.g. older than gcc 4.7 or an 
ancient clang.

Thanks,
Siddhesh

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162]
  2022-05-23  7:19 ` Siddhesh Poyarekar
@ 2022-05-23  7:23   ` Siddhesh Poyarekar
  2022-05-23  8:24   ` Sergei Trofimovich
  1 sibling, 0 replies; 8+ messages in thread
From: Siddhesh Poyarekar @ 2022-05-23  7:23 UTC (permalink / raw)
  To: Siddhesh Poyarekar, Sergei Trofimovich, libc-alpha; +Cc: Sergei Trofimovich

On 23/05/2022 12:49, Siddhesh Poyarekar via Libc-alpha wrote:
> Hi Sergei, one question before I pull this in; how did this even happen? 
>   The build flags don't appear to have -D_FORTIFY_SOURCE, which is 
> prerequisite to including this file.  Also, that bit in the header is 
> reachable only with an older compiler, e.g. older than gcc 4.7 or an 
> ancient clang.

Or a non-gcc, non-clang compiler of course.  The build log in the bug 
report appears to indicate gcc 11.3.0, which should not trip on it.

Siddhesh

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162]
  2022-05-23  7:19 ` Siddhesh Poyarekar
  2022-05-23  7:23   ` Siddhesh Poyarekar
@ 2022-05-23  8:24   ` Sergei Trofimovich
  2022-05-23  8:31     ` Siddhesh Poyarekar
  1 sibling, 1 reply; 8+ messages in thread
From: Sergei Trofimovich @ 2022-05-23  8:24 UTC (permalink / raw)
  To: Siddhesh Poyarekar; +Cc: libc-alpha

On Mon, 23 May 2022 12:49:54 +0530
Siddhesh Poyarekar <siddhesh@sourceware.org> wrote:

> On 20/05/2022 20:36, Sergei Trofimovich wrote:
> > From: Sergei Trofimovich <slyich@gmail.com>
> > 
> > commit e938c0274 "Don't add access size hints to fortifiable functions"
> > converted a few '__attr_access ((...))' into '__fortified_attr_access (...)'
> > calls.
> > 
> > But one of conversions had double parentheses of '__fortified_attr_access (...)'.
> > 
> > Noticed as a gnat6 build failure:
> > 
> >      /<<NIX>>-glibc-2.34-210-dev/include/bits/string_fortified.h:110:50: error: macro "__fortified_attr_access" requires 3 arguments, but only 1 given
> > 
> > The change fixes parentheses.
> > 
> > Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
> > ---
> >   string/bits/string_fortified.h | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/string/bits/string_fortified.h b/string/bits/string_fortified.h
> > index f4a5dfc2e5..149ebbb08b 100644
> > --- a/string/bits/string_fortified.h
> > +++ b/string/bits/string_fortified.h
> > @@ -107,7 +107,7 @@ __NTH (stpncpy (char *__dest, const char *__src, size_t __n))
> >   # else
> >   extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n,
> >   			    size_t __destlen) __THROW
> > -  __fortified_attr_access ((__write_only__, 1, 3))
> > +  __fortified_attr_access (__write_only__, 1, 3)
> >     __attr_access ((__read_only__, 2));
> >   extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src,
> >   					       size_t __n), stpncpy);  
> 
> Hi Sergei, one question before I pull this in; how did this even happen? 
>   The build flags don't appear to have -D_FORTIFY_SOURCE, which is 
> prerequisite to including this file.  Also, that bit in the header is 
> reachable only with an older compiler, e.g. older than gcc 4.7 or an 
> ancient clang.

That's a great question!

NixOS / nixpkgs silently injects -D_FORTIFY_SOURCE=2 via gcc driver for vast majority
of packages even if they don't pass -D_FORTIFY_SOURCE=2 explicitly.

Also nixpkgs builds gnat6 with ... gcc-4.1.0 for historical reasons. We'll
get rid of such ancient toolchains eventually.

-- 

  Sergei

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162]
  2022-05-23  8:24   ` Sergei Trofimovich
@ 2022-05-23  8:31     ` Siddhesh Poyarekar
  0 siblings, 0 replies; 8+ messages in thread
From: Siddhesh Poyarekar @ 2022-05-23  8:31 UTC (permalink / raw)
  To: Sergei Trofimovich; +Cc: libc-alpha

On 23/05/2022 13:54, Sergei Trofimovich wrote:
> That's a great question!
> 
> NixOS / nixpkgs silently injects -D_FORTIFY_SOURCE=2 via gcc driver for vast majority
> of packages even if they don't pass -D_FORTIFY_SOURCE=2 explicitly.
> 
> Also nixpkgs builds gnat6 with ... gcc-4.1.0 for historical reasons. We'll
> get rid of such ancient toolchains eventually.

Thanks, I've pushed it with an added note.  I'll backport to 2.35 and 
2.34 too.

Siddhesh

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-05-23  8:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-20 15:06 [PATCH] string.h: fix __fortified_attr_access macro call [BZ #29162] Sergei Trofimovich
2022-05-23  3:50 ` Siddhesh Poyarekar
2022-05-23  6:54   ` Sergei Trofimovich
2022-05-23  6:55     ` Siddhesh Poyarekar
2022-05-23  7:19 ` Siddhesh Poyarekar
2022-05-23  7:23   ` Siddhesh Poyarekar
2022-05-23  8:24   ` Sergei Trofimovich
2022-05-23  8:31     ` Siddhesh Poyarekar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).