diff options
| author | junyoung <junyoung@NetBSD.org> | 2002-10-05 15:43:56 +0000 |
|---|---|---|
| committer | junyoung <junyoung@NetBSD.org> | 2002-10-05 15:43:56 +0000 |
| commit | 2e85345237c7fd2278f784d73277ff879b15ef45 (patch) | |
| tree | 25f1196c66fef6055c5c1b91922673ebce6376f2 /libexec | |
| parent | 3b71e362fa4311c005210303f65c6180a9ae64f0 (diff) | |
Better fix of parser bug.
Diffstat (limited to 'libexec')
| -rw-r--r-- | libexec/ld.elf_so/paths.c | 16 |
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); |
