summaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorTim Ruehsen <tim.ruehsen@gmx.de>2019-12-06 22:20:06 +0000
committerJeff Law <law@gcc.gnu.org>2019-12-06 15:20:06 -0700
commit1cd4fe3d4302f0db3dd38c720c69f0c51137ff13 (patch)
treed2af2546bc2fe82d48c1104cef672f76d02bee40 /libiberty
parent070455950d3234009059b252d9b5f393682d20c6 (diff)
Fix read buffer overflow in split_directories
* make-relative-prefix.c (split_directories): Return early on empty 'name' From-SVN: r279068
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/ChangeLog5
-rw-r--r--libiberty/make-relative-prefix.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index a766bd8af69..2df645f213c 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,8 @@
+2019-12-06 Tim Ruehsen <tim.ruehsen@gmx.de>
+
+ * make-relative-prefix.c (split_directories):
+ Return early on empty 'name'
+
2019-11-16 Tim Ruehsen <tim.ruehsen@gmx.de>
* cp-demangle.c (d_print_init): Remove const from 4th param.
diff --git a/libiberty/make-relative-prefix.c b/libiberty/make-relative-prefix.c
index ec0b0ee7494..2ff2af8a59c 100644
--- a/libiberty/make-relative-prefix.c
+++ b/libiberty/make-relative-prefix.c
@@ -122,6 +122,9 @@ split_directories (const char *name, int *ptr_num_dirs)
const char *p, *q;
int ch;
+ if (!*name)
+ return NULL;
+
/* Count the number of directories. Special case MSDOS disk names as part
of the initial directory. */
p = name;