From b546a0ae0beb2323143aed00d05e2fdf4fef5239 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Sun, 17 Apr 2016 23:50:15 -0700 Subject: [PATCH] fts: Avoid d_namlen --- lib/libc/gen/fts.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c index 98b3a0a39..c186b7af2 100644 --- a/lib/libc/gen/fts.c +++ b/lib/libc/gen/fts.c @@ -555,6 +555,7 @@ fts_build(FTS *sp, int type) int nitems, cderrno, descend, level, nlinks, nostat, doadjust; int saved_errno; char *cp; + size_t namlen; /* Set current node pointer. */ cur = sp->fts_cur; @@ -653,11 +654,12 @@ fts_build(FTS *sp, int type) if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name)) continue; - if (!(p = fts_alloc(sp, dp->d_name, dp->d_namlen))) + namlen = strlen(dp->d_name); + if (!(p = fts_alloc(sp, dp->d_name, namlen))) goto mem1; - if (dp->d_namlen >= maxlen) { /* include space for NUL */ + if (namlen >= maxlen) { /* include space for NUL */ oldaddr = sp->fts_path; - if (fts_palloc(sp, dp->d_namlen +len + 1)) { + if (fts_palloc(sp, namlen +len + 1)) { /* * No more memory for path or structures. Save * errno, free up the current structure and the @@ -683,7 +685,7 @@ mem1: saved_errno = errno; p->fts_level = level; p->fts_parent = sp->fts_cur; - p->fts_pathlen = len + dp->d_namlen; + p->fts_pathlen = len + namlen; if (p->fts_pathlen < len) { /* * If we wrap, free up the current structure and -- 2.12.2