mirror of
https://github.com/oasislinux/oasis.git
synced 2026-06-27 12:21:59 +02:00
50 lines
1.5 KiB
Diff
50 lines
1.5 KiB
Diff
From b546a0ae0beb2323143aed00d05e2fdf4fef5239 Mon Sep 17 00:00:00 2001
|
|
From: Michael Forney <mforney@mforney.org>
|
|
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
|
|
|