Commit Diff


commit - 0dec1cc0f4982b7abf83963aba8e8c4b1b5de990
commit + 532920c816b5460c84db87598d47ee510e5b6072
blob - e9c070cc5503ebb481d446c0d3740199f01f02dd
blob + c270896af408842bd1b767615b34e227e164d577
--- lib/reference.c
+++ lib/reference.c
@@ -176,7 +176,7 @@ parse_packed_ref_line(struct got_reference **ref, cons
 
 	*ref = NULL;
 
-	if (line[0] == '#')
+	if (line[0] == '#' || line[0] == '^')
 		return NULL;
 
 	if (!got_parse_sha1_digest(digest, line))
@@ -224,7 +224,7 @@ open_packed_ref(struct got_reference **ref, FILE *f, c
 			err = parse_packed_ref_line(ref, abs_refname, line);
 			if (!ref_is_absolute)
 				free(abs_refname);
-			if (err)
+			if (err || *ref != NULL)
 				break;
 		}
 		free(line);