fetch.c: do not pass uninitialized lock to unlock_ref().
authorJunio C Hamano <junkio@cox.net>
Wed, 31 May 2006 22:23:44 +0000 (15:23 -0700)
committerJunio C Hamano <junkio@cox.net>
Wed, 31 May 2006 22:23:44 +0000 (15:23 -0700)
Signed-off-by: Junio C Hamano <junkio@cox.net>
fetch.c

diff --git a/fetch.c b/fetch.c
index ae92d52..cc6013e 100644 (file)
--- a/fetch.c
+++ b/fetch.c
@@ -203,7 +203,7 @@ static int mark_complete(const char *path, const unsigned char *sha1)
 
 int pull(char *target)
 {
-       struct ref_lock *lock;
+       struct ref_lock *lock = NULL;
        unsigned char sha1[20];
        char *msg;
        int ret;
@@ -223,15 +223,18 @@ int pull(char *target)
 
        if (interpret_target(target, sha1)) {
                error("Could not interpret %s as something to pull", target);
-               unlock_ref(lock);
+               if (lock)
+                       unlock_ref(lock);
                return -1;
        }
        if (process(lookup_unknown_object(sha1))) {
-               unlock_ref(lock);
+               if (lock)
+                       unlock_ref(lock);
                return -1;
        }
        if (loop()) {
-               unlock_ref(lock);
+               if (lock)
+                       unlock_ref(lock);
                return -1;
        }