From: Michael Schroeder Date: Tue, 7 Mar 2017 10:30:54 +0000 (+0100) Subject: Ignore dirstr entries with Id zero when copying X-Git-Tag: 0.6.27~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3edcaace14c71804ac571068276fe81880880478;p=thirdparty%2Flibsolv.git Ignore dirstr entries with Id zero when copying We currently can't handle them, so the code runs into an assertion. --- diff --git a/ext/repo_rpmdb.c b/ext/repo_rpmdb.c index d99c37f0..40a1e3e7 100644 --- a/ext/repo_rpmdb.c +++ b/ext/repo_rpmdb.c @@ -1669,12 +1669,14 @@ solvable_copy_cb(void *vcbdata, Solvable *r, Repodata *fromdata, Repokey *key, K case REPOKEY_TYPE_DIRNUMNUMARRAY: id = kv->id; id = copydir(pool, data, fromdata, id, cbdata->dircache); - repodata_add_dirnumnum(data, handle, keyname, id, kv->num, kv->num2); + if (id) + repodata_add_dirnumnum(data, handle, keyname, id, kv->num, kv->num2); break; case REPOKEY_TYPE_DIRSTRARRAY: id = kv->id; id = copydir(pool, data, fromdata, id, cbdata->dircache); - repodata_add_dirstr(data, handle, keyname, id, kv->str); + if (id) + repodata_add_dirstr(data, handle, keyname, id, kv->str); break; case REPOKEY_TYPE_FLEXARRAY: if (kv->eof == 2)