commit: 48f667375565491d9151ae10137909303cef7685
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 12 16:38:16 2022 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sat Feb 12 16:38:16 2022 +0000
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=48f66737
qmerge: fix Coverity resource leak (previnst) CID 248877
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
qmerge.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/qmerge.c b/qmerge.c
index 501011a..c41b095 100644
--- a/qmerge.c
+++ b/qmerge.c
@@ -1089,8 +1089,10 @@ pkg_merge(int level, const depend_atom *qatom, const
tree_match_ctx *mpkg)
/* Get a handle on the main vdb repo */
vdb = tree_open_vdb(portroot, portvdb);
if (vdb == NULL) {
- if (pretend)
+ if (pretend) {
+ tree_match_close(previnst);
return;
+ }
/* try to create a vdb if none exists yet */
xasprintf(&p, "%s/%s", portroot, portvdb);
mkdir_p(p, 0755);
@@ -1103,12 +1105,14 @@ pkg_merge(int level, const depend_atom *qatom, const
tree_match_ctx *mpkg)
if (!cat_ctx) {
if (errno != ENOENT) {
tree_close(vdb);
+ tree_match_close(previnst);
return;
}
mkdirat(vdb->tree_fd, mpkg->atom->CATEGORY, 0755);
cat_ctx = tree_open_cat(vdb, mpkg->atom->CATEGORY);
if (!cat_ctx) {
tree_close(vdb);
+ tree_match_close(previnst);
return;
}
}