]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
debug: Fix clang open fortify wrapper (BZ 31927)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 28 Jun 2024 19:20:15 +0000 (16:20 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 2 Jul 2024 13:19:44 +0000 (10:19 -0300)
The clang open fortify wrapper from 4228baef1a94e8bde84ad74 added
a restriction where open with 3 arguments where flags do not
contain O_CREAT or O_TMPFILE are handled as invalid.  They are
not invalid, since the third argument is ignored, and the gcc
wrapper also allows it.

Checked x86_64-linux-gnu and with a yocto build for some affected
packages.
Tested-by: “Khem Raj <raj.khen@gmail.com>”
io/bits/fcntl2.h

index c8888b50c1170b7bb1365294881fb175207539ba..0cced392e78f3bbc2e4877b1736a1a4f9ec8230a 100644 (file)
@@ -61,13 +61,8 @@ open (const char *__path, int __oflag, ...)
   return __open_alias (__path, __oflag, __va_arg_pack ());
 }
 #elif __fortify_use_clang
-__fortify_function_error_function __attribute_overloadable__ int
-open (__fortify_clang_overload_arg (const char *, ,__path), int __oflag, ...)
-     __fortify_clang_unavailable ("open can be called either with 2 or 3 arguments, not more");
-
 __fortify_function __attribute_overloadable__ int
 open (__fortify_clang_overload_arg (const char *, ,__path), int __oflag)
-     __fortify_clang_prefer_this_overload
      __fortify_clang_error (__OPEN_NEEDS_MODE (__oflag),
                            "open with O_CREAT or O_TMPFILE in second argument needs 3 arguments")
 {