[PATCH] git-local-fetch: Fix error checking and leak in setup_indices()
authorSergey Vlasov <vsu@altlinux.ru>
Fri, 23 Sep 2005 12:28:23 +0000 (16:28 +0400)
committerJunio C Hamano <junkio@cox.net>
Fri, 23 Sep 2005 21:30:45 +0000 (14:30 -0700)
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>
local-fetch.c

index 8176532..b3947a9 100644 (file)
@@ -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;
 }