From 409f19280983b8100a27a773cefbff187cca737a Mon Sep 17 00:00:00 2001 From: Mariano Lopez Date: Tue, 29 Dec 2015 10:25:02 +0000 Subject: rpmresolve.c: Fix unfreed pointers that keep DB opened There are some unfreed rpmmi pointers in printDepList() function; this happens when the package have null as the requirement. This patch fixes these unfreed pointers and add small changes to keep consistency with some variables. [YOCTO #8028] (From OE-Core master rev: da7aa183f94adc1d0fff5bb81e827c584f9938ec) Signed-off-by: Mariano Lopez Signed-off-by: Ross Burton Signed-off-by: Richard Purdie Signed-off-by: Robert Yang --- meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'meta') diff --git a/meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c b/meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c index 7f4caf9886..c0b4d567fb 100644 --- a/meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c +++ b/meta/recipes-devtools/rpm/rpmresolve/rpmresolve.c @@ -42,7 +42,7 @@ FILE *outf; int getPackageStr(rpmts ts, const char *NVRA, rpmTag tag, char **value) { int rc = -1; - rpmmi mi = rpmtsInitIterator(ts, RPMTAG_NVRA, NVRA, 0); + rpmmi mi = rpmmiInit(rpmtsGetRdb(ts), RPMTAG_NVRA, NVRA, 0); Header h; if ((h = rpmmiNext(mi)) != NULL) { HE_t he = (HE_t) memset(alloca(sizeof(*he)), 0, sizeof(*he)); @@ -225,7 +225,7 @@ int processPackages(rpmts *ts, int tscount, const char *packagelistfn, int ignor int lookupProvider(rpmts ts, const char *req, char **provider) { int rc = 0; - rpmmi provmi = rpmtsInitIterator(ts, RPMTAG_PROVIDENAME, req, 0); + rpmmi provmi = rpmmiInit(rpmtsGetRdb(ts), RPMTAG_PROVIDENAME, req, 0); if(provmi) { Header h; if ((h = rpmmiNext(provmi)) != NULL) { @@ -266,7 +266,7 @@ int printDepList(rpmts *ts, int tscount) HE_t he = (HE_t) memset(alloca(sizeof(*he)), 0, sizeof(*he)); int nkeys = argvCount(keys); for(i=0; ip.ptr; @@ -412,7 +414,7 @@ int main(int argc, char **argv) } for(i=0; i