diff options
Diffstat (limited to 'sysdeps/mach/hurd/open.c')
-rw-r--r-- | sysdeps/mach/hurd/open.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sysdeps/mach/hurd/open.c b/sysdeps/mach/hurd/open.c index bdfed5e311..519789f22f 100644 --- a/sysdeps/mach/hurd/open.c +++ b/sysdeps/mach/hurd/open.c @@ -19,6 +19,7 @@ #include <errno.h> #include <fcntl.h> #include <stdarg.h> +#include <stdio.h> #include <hurd.h> #include <hurd/fd.h> @@ -52,8 +53,20 @@ weak_alias (__libc_open, __open) libc_hidden_weak (__open) weak_alias (__libc_open, open) +int +__open_2 (file, oflag) + const char *file; + int oflag; +{ + if (oflag & O_CREAT) + __fortify_fail ("invalid open call: O_CREAT without mode"); + + return __open (file, oflag); +} + /* open64 is just the same as open for us. */ weak_alias (__libc_open, __libc_open64) weak_alias (__libc_open, __open64) libc_hidden_weak (_open64) weak_alias (__libc_open, open64) +strong_alias (__open_2, __open64_2) |