From cebc7ace60a8f6a03e28282cfa43fc20088693c5 Mon Sep 17 00:00:00 2001 From: Judd Vinet Date: Fri, 21 Oct 2005 18:53:40 +0000 Subject: fixed a segfault that occured in special cases when propagating requiredby fields during package replacements --- lib/libalpm/sync.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/libalpm/sync.c') diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index d3fe238d..11bbcc3a 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -590,6 +590,13 @@ int sync_commit(pmtrans_t *trans, pmdb_t *db_local) /* replace old's name with new's name in the requiredby's dependency list */ PMList *m; pmpkg_t *depender = db_get_pkgfromcache(db_local, k->data); + if(depender == NULL) { + /* If the depending package no longer exists in the local db, + * then it must have ALSO conflicted with sync->pkg. If + * that's the case, then we don't have anything to propagate + * here. */ + continue; + } for(m = depender->depends; m; m = m->next) { if(!strcmp(m->data, old->name)) { FREE(m->data); -- cgit v1.2.3-54-g00ecf