From: Michael Schroeder Date: Fri, 6 Sep 2013 15:48:59 +0000 (+0200) Subject: make sure that the ttransaction_info contains only packages that have the transacts... X-Git-Tag: upstream/0.4.0~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d9fd3bedaaf159f684a2d871270683f883679df9;p=platform%2Fupstream%2Flibsolv.git make sure that the ttransaction_info contains only packages that have the transacts bit set can happen if transaction_create_decisionq is called with a decisionq that doesn't match the pool's obsolete flags. --- diff --git a/src/transaction.c b/src/transaction.c index 69c12d9..0e266fa 100644 --- a/src/transaction.c +++ b/src/transaction.c @@ -629,6 +629,8 @@ create_transaction_info(Transaction *trans, Queue *decisionq) { FOR_PROVIDES(p2, pp2, obs) { + if (!MAPTST(&trans->transactsmap, p2)) + continue; s2 = pool->solvables + p2; if (s2->repo != installed) continue; @@ -2024,6 +2026,8 @@ transaction_add_obsoleted(Transaction *trans) { p = obsq.elements[k]; assert(p >= installed->start && p < installed->end); + if (!MAPTST(&trans->transactsmap, p)) /* just in case */ + continue; if (MAPTST(&done, p - installed->start)) continue; MAPSET(&done, p - installed->start);