commit f15ba96bbf48880f5a60443e78bab39070a5fc33 Author: Joel Brobecker Date: Fri Jan 8 16:15:54 2010 +0400 GDB crash with empty executable name (MinGW). * source.c (openp): Add assert that parameter string is not NULL. if parameter string is an empty string, then return with a failure immediately. diff --git a/gdb/source.c b/gdb/source.c index fcfce65..2090326 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -707,6 +707,20 @@ openp (const char *path, int opts, const char *string, /* The open syscall MODE parameter is not specified. */ gdb_assert ((mode & O_CREAT) == 0); + gdb_assert (string != NULL); + + /* A file with an empty name cannot possibly exist. Report a failure + without further checking. + + This is an optimization which also defends us against buggy + implementations of the "stat" function. For instance, we have + noticed that a MinGW debugger built on Windows XP 32bits crashes + when the debugger is started with an empty argument. */ + if (string[0] == '\0') + { + errno = ENOENT; + return -1; + } if (!path) path = ".";