The following commit has been merged in the master branch:
commit d0984e6e92d6e6d1fa3c9a3c81bdfd93315989d5
Author: Guillem Jover <guil...@debian.org>
Date:   Fri Feb 3 03:55:11 2012 +0100

    dpkg: Fix memory leaks from deppossi iterators
    
    Regression introduced in commit b274b0d96da80ef162d45f800777f11b11defe91.

diff --git a/src/depcon.c b/src/depcon.c
index e615d8f..7be426e 100644
--- a/src/depcon.c
+++ b/src/depcon.c
@@ -546,8 +546,10 @@ depisok(struct dependency *dep, struct varbuf *whynot,
                   pkgbin_name(pkg_pos, &pkg_pos->available, pnaw_nonambig),
                   versiondescribe(&pkg_pos->available.version, vdew_nonambig));
           varbuf_add_str(whynot, linebuf);
-          if (!canfixbyremove)
+          if (!canfixbyremove) {
+            deppossi_pkg_iter_free(possi_iter);
             return false;
+          }
           nconflicts++;
           *canfixbyremove = pkg_pos;
           break;
@@ -576,8 +578,10 @@ depisok(struct dependency *dep, struct varbuf *whynot,
                     versiondescribe(&pkg_pos->installed.version, 
vdew_nonambig),
                     gettext(statusstrings[pkg_pos->status]));
             varbuf_add_str(whynot, linebuf);
-            if (!canfixbyremove)
+            if (!canfixbyremove) {
+              deppossi_pkg_iter_free(possi_iter);
               return false;
+            }
             nconflicts++;
             *canfixbyremove = pkg_pos;
           }
@@ -586,6 +590,7 @@ depisok(struct dependency *dep, struct varbuf *whynot,
           internerr("unknown istobe conflict '%d'", 
pkg_pos->clientdata->istobe);
         }
       }
+      deppossi_pkg_iter_free(possi_iter);
     }
 
     /* If there was no version specified we try looking for Providers. */

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to debian-dpkg-cvs-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to