about summary refs log tree commit diff
path: root/third_party/git/http-push.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/http-push.c')
-rw-r--r--third_party/git/http-push.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/third_party/git/http-push.c b/third_party/git/http-push.c
index 822f32659936..0353f9f5143d 100644
--- a/third_party/git/http-push.c
+++ b/third_party/git/http-push.c
@@ -501,10 +501,10 @@ static void release_request(struct transfer_request *request)
 	if (request == request_queue_head) {
 		request_queue_head = request->next;
 	} else {
-		while (entry && entry->next != request)
+		while (entry->next != NULL && entry->next != request)
 			entry = entry->next;
-		if (entry)
-			entry->next = request->next;
+		if (entry->next == request)
+			entry->next = entry->next->next;
 	}
 
 	free(request->url);
@@ -981,7 +981,7 @@ static int unlock_remote(struct remote_lock *lock)
 		while (prev && prev->next != lock)
 			prev = prev->next;
 		if (prev)
-			prev->next = lock->next;
+			prev->next = prev->next->next;
 	}
 
 	free(lock->owner);