commit 5c76e79f41250d505bca09d36a5518bf66c51749
Author: Richard Ipsum <[email protected]>
AuthorDate: Wed Jun 3 12:45:15 2020 +0100
Commit: Michael Forney <[email protected]>
CommitDate: Sat Jun 20 18:48:14 2020 -0700
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
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);
}