This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFC] GDB crash with empty executable name (MinGW)
> I think it would be fine, but I would recommend putting some info into
> the comment explaining why this check was added... just some detail from
> your original note.
Agreed. Here is what I checked in. I can make additional adjustments
if necessary.
Thank you!
--
Joel
commit f15ba96bbf48880f5a60443e78bab39070a5fc33
Author: Joel Brobecker <brobecker@adacore.com>
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 = ".";