Mercurial > hg > octave-lojdl > gnulib-hg
changeset 12395:9f528fc7a798
prognam: Add diagnostic.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 06 Dec 2009 23:19:49 +0100 |
parents | c30020975750 |
children | 85e0cbbf0787 |
files | ChangeLog lib/progname.c |
diffstat | 2 files changed, 17 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-12-06 Bruno Haible <bruno@clisp.org> + + * lib/progname.c: Include stdio.h, stdlib.h. + (set_program_name): Reject a NULL argument. + 2009-12-05 Eric Blake <ebb9@byu.net> pipe2-safer: new module
--- a/lib/progname.c +++ b/lib/progname.c @@ -23,6 +23,8 @@ #include "progname.h" #include <errno.h> /* get program_invocation_name declaration */ +#include <stdio.h> +#include <stdlib.h> #include <string.h> @@ -44,6 +46,16 @@ const char *slash; const char *base; + /* Sanity check. POSIX requires the invoking process to pass a non-NULL + argv[0]. */ + if (argv0 == NULL) + { + /* It's a bug in the invoking program. Help diagnosing it. */ + fputs ("A NULL argv[0] was passed through an exec system call.\n", + stderr); + abort (); + } + slash = strrchr (argv0, '/'); base = (slash != NULL ? slash + 1 : argv0); if (base - argv0 >= 7 && strncmp (base - 7, "/.libs/", 7) == 0)