summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Sergey Vlasov <vsu@altlinux.ru>2005-09-23 16:28:23 +0400
committerLibravatar Junio C Hamano <junkio@cox.net>2005-09-23 14:30:45 -0700
commit8be707de55e473a5d850a1fcdc6e30589a37d548 (patch)
tree803fd8b2299dbc3cd8b430c3f9fbed2bd379aeb4
parent[PATCH] fetch.c: Plug memory leak in process_tree() (diff)
downloadtgif-8be707de55e473a5d850a1fcdc6e30589a37d548.tar.xz
[PATCH] git-local-fetch: Fix error checking and leak in setup_indices()
setup_indices() did not check the return value of opendir(), and did not have a corresponding closedir() call. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--local-fetch.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/local-fetch.c b/local-fetch.c
index 8176532320..b3947a9657 100644
--- a/local-fetch.c
+++ b/local-fetch.c
@@ -38,6 +38,8 @@ static int setup_indices(void)
unsigned char sha1[20];
sprintf(filename, "%s/objects/pack/", path);
dir = opendir(filename);
+ if (!dir)
+ return -1;
while ((de = readdir(dir)) != NULL) {
int namelen = strlen(de->d_name);
if (namelen != 50 ||
@@ -46,6 +48,7 @@ static int setup_indices(void)
get_sha1_hex(de->d_name + 5, sha1);
setup_index(sha1);
}
+ closedir(dir);
return 0;
}