summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
authorAlex Riesen <raa.lkml@gmail.com>2011-04-01 08:29:16 (GMT)
committerJunio C Hamano <gitster@pobox.com>2011-04-01 18:16:21 (GMT)
commit0235017eafa8dfc3a7353b7091ad5109d0beb7a5 (patch)
treef62dcba6b55c4043600bbd0620b91e54c885b129 /dir.c
parent2352570bf43368f3d3931f7b24bb7fd44e68eef3 (diff)
downloadgit-0235017eafa8dfc3a7353b7091ad5109d0beb7a5.zip
git-0235017eafa8dfc3a7353b7091ad5109d0beb7a5.tar.gz
git-0235017eafa8dfc3a7353b7091ad5109d0beb7a5.tar.bz2
clean: unreadable directory may still be rmdir-able if it is empty
As a last ditch effort, try rmdir(2) when we cannot read the directory to be removed. It may be an empty directory that we can remove without any permission, as long as we can modify its parent directory. Noticed by Linus. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/dir.c b/dir.c
index 570b651..aa1a718 100644
--- a/dir.c
+++ b/dir.c
@@ -1088,7 +1088,7 @@ int remove_dir_recursively(struct strbuf *path, int flag)
dir = opendir(path->buf);
if (!dir)
- return -1;
+ return rmdir(path->buf);
if (path->buf[original_len - 1] != '/')
strbuf_addch(path, '/');