diff options
author | Lancelot SIX <lsix@lancelotsix.com> | 2021-02-25 00:30:49 +0000 |
---|---|---|
committer | Lancelot SIX <lsix@lancelotsix.com> | 2021-02-27 14:29:39 +0000 |
commit | bb3a4efe13c0bd9a7b15ecd02ddb966870a03bd0 (patch) | |
tree | 2fba83defaddb1b33723dd84e7c3276a5c3c2603 /gdb/source.c | |
parent | 573dc0cc43f2c3ce4d28ec1aa1bf05fc43810cda (diff) | |
download | gdb-bb3a4efe13c0bd9a7b15ecd02ddb966870a03bd0.zip gdb-bb3a4efe13c0bd9a7b15ecd02ddb966870a03bd0.tar.gz gdb-bb3a4efe13c0bd9a7b15ecd02ddb966870a03bd0.tar.bz2 |
[PR gdb/27393] set directories: handle empty dirs.
As reported in gdb/27393, the 'directory' and 'set directories' commands
fail when parsing an empty dir name:
(gdb) set directories ""
/home/lsix/dev/gnu/binutils-gdb/gdbsupport/pathstuff.cc:132: internal-error: gdb::unique_xmalloc_ptr<char> gdb_abspath(const char*): Assertion `path != NULL && path[0] != '\0'' failed.
or
(gdb) dir :
/home/lsix/dev/gnu/binutils-gdb/gdbsupport/pathstuff.cc:132: internal-error: gdb::unique_xmalloc_ptr<char> gdb_abspath(const char*): Assertion `path != NULL && path[0] != '\0'' failed.
This patch fixes this issue by ignoring any attempt to add an empty
name to the source directories list. 'set dir ""' will reset the
directories list the same way 'set dir' would do it.
Tested on x86_64.
Diffstat (limited to 'gdb/source.c')
-rw-r--r-- | gdb/source.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gdb/source.c b/gdb/source.c index dc30dac..3a8f829 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -572,6 +572,8 @@ add_path (const char *dirname, char **which_path, int parse_separators) break; } + if (name[0] == '\0') + goto skip_dup; if (name[0] == '~') new_name_holder.reset (tilde_expand (name)); #ifdef HAVE_DOS_BASED_FILE_SYSTEM |