]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Ignore dirstr entries with Id zero when copying
authorMichael Schroeder <mls@suse.de>
Tue, 7 Mar 2017 10:30:54 +0000 (11:30 +0100)
committerMichael Schroeder <mls@suse.de>
Tue, 7 Mar 2017 10:33:44 +0000 (11:33 +0100)
We currently can't handle them, so the code runs into an
assertion.

ext/repo_rpmdb.c

index d99c37f02b6948ef7491664c4ed669189bad7454..40a1e3e72da2a2aca02e9b78c46f8cd5ef2f30a7 100644 (file)
@@ -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)