Commit Diff


commit - ed1b7d154b05534af7ddad5e3d4f4022ba7e1f40
commit + c7cffd9da7a53b650fadcf7f99b049250108fb45
blob - e8daf0c59673cc77a168a4e76ca27d5c92a85bd6
blob + 7938632bcf8fedb94d39affbc0ffdae44f5dc3a1
--- lib/pack_create_privsep.c
+++ lib/pack_create_privsep.c
@@ -481,7 +481,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,
@@ -489,6 +489,8 @@ got_pack_paint_commits(int *ncolored, struct got_objec
 					nqueued--;
 					got_object_qid_free(qid);
 					qid = NULL;
+					if (err)
+						goto done;
 				}
 				continue;
 			}