aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elf/ldconfig.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index c41c81e3b8..6484e311aa 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -342,13 +342,15 @@ add_dir (const char *line)
entry->flag = FLAG_ANY;
}
- /* Canonify path: for now only remove trailing slashes. */
+ /* Canonify path: for now only remove leading and trailing
+ whitespace and the trailing slashes slashes. */
i = strlen (entry->path) - 1;
+
+ while (isspace (entry->path[i]) && i > 0)
+ entry->path[i--] = '\0';
+
while (entry->path[i] == '/' && i > 0)
- {
- entry->path[i] = '\0';
- --i;
- }
+ entry->path[i--] = '\0';
if (stat64 (entry->path, &stat_buf))
{
@@ -963,12 +965,18 @@ parse_conf (const char *filename)
make it terminating the line. */
*strchrnul (line, '#') = '\0';
+ /* Remove leading whitespace. NUL is no whitespace character. */
+ char *cp = line;
+ while (isspace (*cp))
+ ++cp;
+
/* If the line is blank it is ignored. */
- if (line[0] == '\0')
+ if (cp[0] == '\0')
continue;
- add_dir (line);
- } while (!feof (file));
+ add_dir (cp);
+ }
+ while (!feof_unlocked (file));
/* Free buffer and close file. */
free (line);