From 59f46665aa10eed0776e93dc5f67368a3b8b27e3 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Mon, 22 Feb 2016 13:51:11 -0500 Subject: bftw: Use the currently open directory as at_fd in BFTW_CHILD mode. --- bftw.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'bftw.c') diff --git a/bftw.c b/bftw.c index 8c8d8b4..bab357d 100644 --- a/bftw.c +++ b/bftw.c @@ -725,9 +725,12 @@ static void bftw_init_buffers(struct bftw_state *state, const struct dirent *de) if (state->status == BFTW_CHILD) { ftwbuf->nameoff += current->namelen; ++ftwbuf->depth; - } - dircache_entry_base(&state->cache, current, &ftwbuf->at_fd, &ftwbuf->at_path); + ftwbuf->at_fd = current->fd; + ftwbuf->at_path += ftwbuf->nameoff; + } else { + dircache_entry_base(&state->cache, current, &ftwbuf->at_fd, &ftwbuf->at_path); + } } else { ftwbuf->nameoff = basename_offset(ftwbuf->path); ftwbuf->depth = 0; -- cgit v1.2.3