Commit Diff


commit - 600b755ed0123e8da4404f6cf4354d152355ac4d
commit + e65c741086b97af5f2e89bfcd40fdad78ea62886
blob - c66294529994282158f2e9cc6f210b715b65ca43
blob + b9d3ec4605ca7d5c2d7b59cde3def136e77c3adc
--- lib/object.c
+++ lib/object.c
@@ -565,6 +565,8 @@ got_object_raw_open(struct got_raw_object **obj, struc
 		}
 		err = read_packed_object_raw_privsep(&outbuf, &size, &hdrlen,
 		    outfd, pack, packidx, idx, id);
+		if (err)
+			goto done;
 	} else if (err->code == GOT_ERR_NO_OBJ) {
 		int fd;
 
@@ -573,6 +575,8 @@ got_object_raw_open(struct got_raw_object **obj, struc
 			goto done;
 		err = read_object_raw_privsep(&outbuf, &size, &hdrlen, outfd,
 		    id, repo, fd);
+		if (err)
+			goto done;
 	}
 
 	*obj = calloc(1, sizeof(**obj));