debug: Fix clang open fortify wrapper (BZ 31927)

The clang open fortify wrapper from 4228baef1a 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>”
This commit is contained in:
Adhemerval Zanella 2024-06-28 16:20:15 -03:00
parent ba144c179e
commit 9f80d8134a

View 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")
{