Commit Diff


commit - c980e4703622d93dfeebcd122bc9f747227b55f6
commit + 7ab0422aff525c78e854d0001ce01da9541b3cd5
blob - f548d7dccd99e1721c253fb83954b7ea79234ef5
blob + 07d58e1a0c7abcae6e6bc3ecd53d77f3bd512b5e
--- lib/reference.c
+++ lib/reference.c
@@ -299,8 +299,12 @@ open_packed_ref(struct got_reference **ref, FILE *f, c
 		abs_refname = (char *)refname;
 	do {
 		line = fparseln(f, &len, NULL, delim, 0);
-		if (line == NULL)
+		if (line == NULL) {
+			if (feof(f))
+				break;
+			err = got_ferror(f, GOT_ERR_BAD_REF_DATA);
 			break;
+		}
 		for (i = 0; i < nsubdirs; i++) {
 			if (!ref_is_absolute &&
 			    asprintf(&abs_refname, "refs/%s/%s", subdirs[i],