From: Bruno Haible Date: Wed, 9 Dec 2009 16:30:38 +0000 (-0800) Subject: Add more warnings to exec functions. X-Git-Tag: fedora/glibc-2.11.90-4~1^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4940d71bef654affc617dcd9eb48b424646a1045;p=thirdparty%2Fglibc.git Add more warnings to exec functions. --- diff --git a/ChangeLog b/ChangeLog index 59e4b19241d..799448f6d0e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,11 @@ -2009-12-08 Ulrich Drepper +2009-11-05 Bruno Haible + + [BZ #11056] + * posix/unistd.h (execve, fexecve, execv, execvp, execvpe): Mark the + argv argument as non-NULL. + (execle, execl, execlp): Mark the first ARG argument as non-NULL. + +-2009-12-08 Ulrich Drepper * sysdeps/unix/sysv/linux/bits/socket.h: Define mmsghdr and declare recvmmsg. diff --git a/posix/unistd.h b/posix/unistd.h index d9ecb5e788c..b46a885afa8 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -544,47 +544,47 @@ extern char **environ; /* Replace the current process, executing PATH with arguments ARGV and environment ENVP. ARGV and ENVP are terminated by NULL pointers. */ extern int execve (__const char *__path, char *__const __argv[], - char *__const __envp[]) __THROW __nonnull ((1)); + char *__const __envp[]) __THROW __nonnull ((1, 2)); #ifdef __USE_XOPEN2K8 /* Execute the file FD refers to, overlaying the running program image. ARGV and ENVP are passed to the new program, as for `execve'. */ extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) - __THROW; + __THROW __nonnull ((2)); #endif /* Execute PATH with arguments ARGV and environment from `environ'. */ extern int execv (__const char *__path, char *__const __argv[]) - __THROW __nonnull ((1)); + __THROW __nonnull ((1, 2)); /* Execute PATH with all arguments after PATH until a NULL pointer, and the argument after that for environment. */ extern int execle (__const char *__path, __const char *__arg, ...) - __THROW __nonnull ((1)); + __THROW __nonnull ((1, 2)); /* Execute PATH with all arguments after PATH until a NULL pointer and environment from `environ'. */ extern int execl (__const char *__path, __const char *__arg, ...) - __THROW __nonnull ((1)); + __THROW __nonnull ((1, 2)); /* Execute FILE, searching in the `PATH' environment variable if it contains no slashes, with arguments ARGV and environment from `environ'. */ extern int execvp (__const char *__file, char *__const __argv[]) - __THROW __nonnull ((1)); + __THROW __nonnull ((1, 2)); /* Execute FILE, searching in the `PATH' environment variable if it contains no slashes, with all arguments after FILE until a NULL pointer and environment from `environ'. */ extern int execlp (__const char *__file, __const char *__arg, ...) - __THROW __nonnull ((1)); + __THROW __nonnull ((1, 2)); #ifdef __USE_GNU /* Execute FILE, searching in the `PATH' environment variable if it contains no slashes, with arguments ARGV and environment from `environ'. */ extern int execvpe (__const char *__file, char *__const __argv[], char *__const __envp[]) - __THROW __nonnull ((1)); + __THROW __nonnull ((1, 2)); #endif