[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>
This commit is contained in:
parent
d35bbe0b2e
commit
8be707de55
@ -38,6 +38,8 @@ static int setup_indices(void)
|
|||||||
unsigned char sha1[20];
|
unsigned char sha1[20];
|
||||||
sprintf(filename, "%s/objects/pack/", path);
|
sprintf(filename, "%s/objects/pack/", path);
|
||||||
dir = opendir(filename);
|
dir = opendir(filename);
|
||||||
|
if (!dir)
|
||||||
|
return -1;
|
||||||
while ((de = readdir(dir)) != NULL) {
|
while ((de = readdir(dir)) != NULL) {
|
||||||
int namelen = strlen(de->d_name);
|
int namelen = strlen(de->d_name);
|
||||||
if (namelen != 50 ||
|
if (namelen != 50 ||
|
||||||
@ -46,6 +48,7 @@ static int setup_indices(void)
|
|||||||
get_sha1_hex(de->d_name + 5, sha1);
|
get_sha1_hex(de->d_name + 5, sha1);
|
||||||
setup_index(sha1);
|
setup_index(sha1);
|
||||||
}
|
}
|
||||||
|
closedir(dir);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user