Commit Diff


commit - 57ebf19f2d3fab10b9053e7c865cbd251e1ded0d
commit + 6772cf22207374c163d3fc80a65d5010ead394b8
blob - fdf067e5f19b3893f523c91aebab78dc91db2be1
blob + fedfa0d5e172423890f0065b514ed61be068af7b
--- lib/pack.c
+++ lib/pack.c
@@ -329,8 +329,11 @@ got_packidx_open(struct got_packidx **packidx, const c
 		return got_error_from_errno("calloc");
 
 	p->fd = open(path, O_RDONLY | O_NOFOLLOW);
-	if (p->fd == -1)
-		return got_error_from_errno2("open", path);
+	if (p->fd == -1) {
+		err = got_error_from_errno2("open", path);
+		free(p);
+		return err;
+	}
 
 	if (fstat(p->fd, &sb) != 0) {
 		err = got_error_from_errno2("fstat", path);