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;
                }
        }

Reply via email to