From d34e70d6b89b33c398403e872c0dd751d44c7844 Mon Sep 17 00:00:00 2001 From: Karsten Blees Date: Tue, 6 Mar 2012 10:18:41 +0100 Subject: fix deletion of .git/objects sub-directories in git-prune/repack Both git-prune and git-repack (and thus, git-gc) try to rmdir while holding a DIR* handle on the directory. This can leave dangling empty directories in the .git/objects on platforms where directory cannot be removed while they are open. First call closedir() and then rmdir(); that is more logical ordering. Reported-by: John Chen Reported-by: Stefan Naewe Signed-off-by: Karsten Blees Improved-and-Acked-by: Johannes Sixt Signed-off-by: Junio C Hamano --- builtin/prune.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'builtin/prune.c') diff --git a/builtin/prune.c b/builtin/prune.c index 58d7cb8324..b99b635e44 100644 --- a/builtin/prune.c +++ b/builtin/prune.c @@ -85,9 +85,9 @@ static int prune_dir(int i, char *path) } fprintf(stderr, "bad sha1 file: %s/%s\n", path, de->d_name); } + closedir(dir); if (!show_only) rmdir(path); - closedir(dir); return 0; } -- cgit v1.2.1