summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorjunyoung <junyoung@NetBSD.org>2002-10-05 15:43:56 +0000
committerjunyoung <junyoung@NetBSD.org>2002-10-05 15:43:56 +0000
commit2e85345237c7fd2278f784d73277ff879b15ef45 (patch)
tree25f1196c66fef6055c5c1b91922673ebce6376f2 /libexec
parent3b71e362fa4311c005210303f65c6180a9ae64f0 (diff)
Better fix of parser bug.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ld.elf_so/paths.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/libexec/ld.elf_so/paths.c b/libexec/ld.elf_so/paths.c
index 1dfe35b9f40..d3e7db983bc 100644
--- a/libexec/ld.elf_so/paths.c
+++ b/libexec/ld.elf_so/paths.c
@@ -1,4 +1,4 @@
-/* $NetBSD: paths.c,v 1.21 2002/10/05 15:04:49 junyoung Exp $ */
+/* $NetBSD: paths.c,v 1.22 2002/10/05 15:43:56 junyoung Exp $ */
/*
* Copyright 1996 Matt Thomas <matt@3am-software.com>
@@ -359,19 +359,23 @@ _rtld_process_hints(path_p, lib_p, fname)
doing_path = *b == '/';
len = strcspn(b, "\n#");
+ if (len == 0) {
+ if (*b == '#')
+ b += strcspn(b, "\n");
+ continue;
+ }
+
if (doing_path)
- path_p = _rtld_append_path(head_p, path_p, b, len);
+ path_p = _rtld_append_path(head_p, path_p, b,
+ strcspn(b, " \t"));
else {
char tmp = b[len];
b[len] = '\0';
- if (len != 0)
- _rtld_process_mapping(lib_p, b, len);
+ _rtld_process_mapping(lib_p, b, len);
b[len] = tmp;
}
b += len;
- if (*b == '#')
- b += strcspn(b, "\n");
}
(void)munmap(buf, sz);