Commit Diff


commit - 532c57c6a9069368bff908ee684e60d98ed3794c
commit + c3e15b4b25193f9fad9f3114b1635ac5b2a45f9b
blob - 91f0b649cfae4d7a6a165ffe37a184900acf4c0f
blob + e51467833a219053542316cacd34baf290c0c336
--- lib/pack_create_privsep.c
+++ lib/pack_create_privsep.c
@@ -479,7 +479,7 @@ got_pack_paint_commits(int *ncolored, struct got_objec
 				    ids, keep, drop, skip, repo,
 				    progress_cb, progress_arg, rl,
 				    cancel_cb, cancel_arg);
-				if (err)
+				if (err && qid == NULL)
 					goto done;
 				if (qid) {
 					STAILQ_REMOVE(ids, qid,
@@ -487,6 +487,8 @@ got_pack_paint_commits(int *ncolored, struct got_objec
 					nqueued--;
 					got_object_qid_free(qid);
 					qid = NULL;
+					if (err)
+						goto done;
 				}
 				continue;
 			}