From e8df564c51250e0c1ee72306be28eb854955fd24 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Fri, 14 Nov 2008 11:55:08 +0000 Subject: [PATCH] - fix mem leak - use EVRCMP_COMPARE instead of MATCH_RELEASE when comparing evrs. --- src/policy.c | 4 ++-- src/solver.c | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/policy.c b/src/policy.c index 4b9cec5..ab3dd46 100644 --- a/src/policy.c +++ b/src/policy.c @@ -294,7 +294,7 @@ prune_to_best_version(Solver *solv, Queue *plist) if (pool->solvables[best].evr != s->evr) /* compare evr */ { - if (evrcmp(pool, pool->solvables[best].evr, s->evr, EVRCMP_MATCH_RELEASE) < 0) + if (evrcmp(pool, pool->solvables[best].evr, s->evr, EVRCMP_COMPARE) < 0) best = plist->elements[i]; } } @@ -429,7 +429,7 @@ policy_findupdatepackages(Solver *solv, Solvable *s, Queue *qs, int allow_all) ps = pool->solvables + p; if (s->name == ps->name) /* name match */ { - if (!allow_all && !solv->allowdowngrade && evrcmp(pool, s->evr, ps->evr, EVRCMP_MATCH_RELEASE) > 0) + if (!allow_all && !solv->allowdowngrade && evrcmp(pool, s->evr, ps->evr, EVRCMP_COMPARE) > 0) continue; } else if (!solv->noupdateprovide && ps->obsoletes) /* provides/obsoletes combination ? */ diff --git a/src/solver.c b/src/solver.c index bed5fd4..175cd18 100644 --- a/src/solver.c +++ b/src/solver.c @@ -2508,6 +2508,7 @@ run_solver(Solver *solv, int disablerules, int doweak) if (analyze_unsolvable(solv, r, disablerules)) continue; queue_free(&dq); + queue_free(&dqs); return; } } @@ -2556,6 +2557,7 @@ run_solver(Solver *solv, int disablerules, int doweak) if (level == 0) { queue_free(&dq); + queue_free(&dqs); return; } if (level <= olevel) @@ -2601,6 +2603,7 @@ run_solver(Solver *solv, int disablerules, int doweak) if (level == 0) /* unsolvable */ { queue_free(&dq); + queue_free(&dqs); return; } if (level <= olevel) @@ -2638,6 +2641,7 @@ run_solver(Solver *solv, int disablerules, int doweak) if (level == 0) { queue_free(&dq); + queue_free(&dqs); return; } if (level <= olevel) @@ -2659,6 +2663,7 @@ run_solver(Solver *solv, int disablerules, int doweak) if (level == 0) { queue_free(&dq); + queue_free(&dqs); return; } if (level <= olevel) @@ -2721,6 +2726,7 @@ run_solver(Solver *solv, int disablerules, int doweak) if (level == 0) { queue_free(&dq); + queue_free(&dqs); return; } if (level <= olevel) @@ -2813,6 +2819,7 @@ run_solver(Solver *solv, int disablerules, int doweak) if (level == 0) { queue_free(&dq); + queue_free(&dqs); return; } if (level < systemlevel) @@ -2976,6 +2983,7 @@ run_solver(Solver *solv, int disablerules, int doweak) if (level == 0) { queue_free(&dq); + queue_free(&dqs); return; } continue; @@ -3014,6 +3022,7 @@ run_solver(Solver *solv, int disablerules, int doweak) if (level == 0) { queue_free(&dq); + queue_free(&dqs); return; } continue; -- 2.7.4