diff options
author | Bruno Haible <bruno@clisp.org> | 2009-12-09 08:30:38 -0800 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-12-09 08:30:38 -0800 |
commit | 4940d71bef654affc617dcd9eb48b424646a1045 (patch) | |
tree | 7df83e6054fdb9898a8c1fa0b37b48c3432f2728 | |
parent | ee1a7fabb4e0abd3e73e828ce326dcb5fd38b874 (diff) | |
download | glibc-4940d71bef654affc617dcd9eb48b424646a1045.tar.gz glibc-4940d71bef654affc617dcd9eb48b424646a1045.tar.xz glibc-4940d71bef654affc617dcd9eb48b424646a1045.zip |
Add more warnings to exec functions.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | posix/unistd.h | 16 |
2 files changed, 16 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog index 59e4b19241..799448f6d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,11 @@ -2009-12-08 Ulrich Drepper <drepper@redhat.com> +2009-11-05 Bruno Haible <bruno@clisp.org> + + [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 <drepper@redhat.com> * sysdeps/unix/sysv/linux/bits/socket.h: Define mmsghdr and declare recvmmsg. diff --git a/posix/unistd.h b/posix/unistd.h index d9ecb5e788..b46a885afa 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 |