[Bug libc/29141] _FORTIFY_SOURCE=3 fail for gcc 12/glibc 2.35

siddhesh at sourceware dot org sourceware-bugzilla@sourceware.org
Fri May 13 04:02:17 GMT 2022


https://sourceware.org/bugzilla/show_bug.cgi?id=29141

--- Comment #6 from Siddhesh Poyarekar <siddhesh at sourceware dot org> ---
(In reply to Petr Ovtchenkov from comment #5)
> Hmm. c8ee1c8 not correspond to diff you show above.

Ah, sorry no, they're two different things that I formatted very badly making
it seem like it's one thing.  The commit that introduced the regression:

commit c8ee1c85c07b3c9eaef46355cb1095300855e8fa
Author: Joan Bruguera <joanbrugueram@gmail.com>
Date:   Mon Apr 11 19:49:56 2022 +0200

    misc: Fix rare fortify crash on wchar funcs. [BZ 29030]

and then the one line fix for it that I'm about to post:

diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index f1faf8292c..1c2b044a0d 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -164,7 +164,7 @@
 /* Length is known to be safe at compile time if the __L * __S <= __OBJSZ
    condition can be folded to a constant and if it is true, or unknown (-1) */
 #define __glibc_safe_or_unknown_len(__l, __s, __osz) \
-  ((__osz) == (__SIZE_TYPE__) -1                                             \
+  ((__builtin_constant_p (__osz) && (__osz) == (__SIZE_TYPE__) -1)           \
    || (__glibc_unsigned_or_positive (__l)                                    \
        && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l),
\
                                                       (__s), (__osz)))       \

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Elfutils-devel mailing list