diff options
author | Andreas Schwab <schwab@redhat.com> | 2011-05-03 13:44:25 -0400 |
---|---|---|
committer | Petr Baudis <pasky@ucw.cz> | 2011-05-27 00:49:23 +0200 |
commit | 426cfd73719462d0fedd72d78169218509dae574 (patch) | |
tree | badb8532a4ef136f0511d329ac19cb1ac2916f96 | |
parent | 7b1d92c6439bfeea8b72631a1f3849109a38c909 (diff) | |
download | glibc-426cfd73719462d0fedd72d78169218509dae574.zip glibc-426cfd73719462d0fedd72d78169218509dae574.tar.gz glibc-426cfd73719462d0fedd72d78169218509dae574.tar.bz2 |
ldconfig: don't crash on empty path in config file
(cherry picked from commit 00ee369c1cbdcc4ca4a009e9223799951c6c8f04)
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | elf/ldconfig.c | 15 |
2 files changed, 13 insertions, 6 deletions
@@ -1,3 +1,7 @@ +2011-05-03 Andreas Schwab <schwab@redhat.com> + + * elf/ldconfig.c (add_dir): Don't crash on empty path. + 2011-04-30 Bruno Haible <bruno@clisp.org> [BZ #12717] diff --git a/elf/ldconfig.c b/elf/ldconfig.c index 6ba8e07..c11b1f5 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -384,14 +384,17 @@ add_dir (const char *line) } /* Canonify path: for now only remove leading and trailing - whitespace and the trailing slashes slashes. */ - i = strlen (entry->path) - 1; + whitespace and the trailing slashes. */ + i = strlen (entry->path); - while (isspace (entry->path[i]) && i > 0) - entry->path[i--] = '\0'; + while (i > 0 && isspace (entry->path[i - 1])) + entry->path[--i] = '\0'; - while (entry->path[i] == '/' && i > 0) - entry->path[i--] = '\0'; + while (i > 0 && entry->path[i - 1] == '/') + entry->path[--i] = '\0'; + + if (i == 0) + return; char *path = entry->path; if (opt_chroot) |