From 5c76e79f41250d505bca09d36a5518bf66c51749 Mon Sep 17 00:00:00 2001 From: Richard Ipsum Date: Wed, 3 Jun 2020 12:45:15 +0100 Subject: [PATCH] du: recurse: fix path path is not fixed up on exit from recursive step, this leads to incorrect paths in du's output. % find D D D/E D/E/F D/E/F/a2 D/E/F/b2 D/E/a1 D/E/b1 D/a D/b % du D 4 D/E/F 8 D/E 12 D % ~/sbase/du D 4 D/E/F/b2 8 D/E/b1 12 D --- libutil/recurse.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libutil/recurse.c b/libutil/recurse.c index e21d815..feb1b30 100644 --- a/libutil/recurse.c +++ b/libutil/recurse.c @@ -90,6 +90,8 @@ recurse(int dirfd, const char *name, void *data, struct recursor *r) r->depth--; } } + r->path[pathlen - 1] = '\0'; + r->pathlen = pathlen - 1; closedir(dp); }