diff options
Diffstat (limited to 'libexec/rtld-elf/libmap.c')
| -rw-r--r-- | libexec/rtld-elf/libmap.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/libexec/rtld-elf/libmap.c b/libexec/rtld-elf/libmap.c index cb72f03f3176..773456b1f74d 100644 --- a/libexec/rtld-elf/libmap.c +++ b/libexec/rtld-elf/libmap.c @@ -263,14 +263,12 @@ lm_findn (const char *p, const char *f, const int n) { char pathbuf[64], *s, *t; - if (n < sizeof(pathbuf) - 1) { - memcpy(pathbuf, f, n); - pathbuf[n] = '\0'; + if (n < sizeof(pathbuf) - 1) s = pathbuf; - } else { + else s = xmalloc(n + 1); - strcpy(s, f); - } + memcpy(s, f, n); + s[n] = '\0'; t = lm_find(p, s); if (s != pathbuf) free(s); |
