Commit 6772cf22207374c163d3fc80a65d5010ead394b8

Hiltjo Posthuma 2019-08-27T19:01:04

got_packidx_open: free packidx object when open(2) fails

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
diff --git a/lib/pack.c b/lib/pack.c
index fdf067e..fedfa0d 100644
--- a/lib/pack.c
+++ b/lib/pack.c
@@ -329,8 +329,11 @@ got_packidx_open(struct got_packidx **packidx, const char *path, int verify)
 		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);