From 3edcaace14c71804ac571068276fe81880880478 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Tue, 7 Mar 2017 11:30:54 +0100 Subject: [PATCH] Ignore dirstr entries with Id zero when copying We currently can't handle them, so the code runs into an assertion. --- ext/repo_rpmdb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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) -- 2.47.3