]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Fix fix_namespace_dep() error when the reldeps block is realloced master
authorMichael Schroeder <mls@suse.de>
Fri, 3 Jul 2026 13:55:53 +0000 (15:55 +0200)
committerMichael Schroeder <mls@suse.de>
Fri, 3 Jul 2026 14:00:14 +0000 (16:00 +0200)
src/suse.c

index 4072814b008ed54bbbda6a32a8a3517bdc11b423..cdd7340c202ad852436e68258996aa0b264be552 100644 (file)
@@ -94,9 +94,10 @@ fix_namespace_dep(Pool *pool, Id id)
   rd = GETRELDEP(pool, id);
   if (rd->flags == REL_AND || rd->flags == REL_OR || rd->flags == REL_COND || rd->flags == REL_UNLESS || rd->flags == REL_ELSE)
     {
-      Id name = fix_namespace_dep(pool, rd->name);
-      Id evr = fix_namespace_dep(pool, rd->evr);
-      return name == rd->name && evr == rd->evr ? id : pool_rel2id(pool, name, evr, rd->flags, 1);
+      Id name = rd->name, evr = rd->evr, flags = rd->flags;
+      Id newname = fix_namespace_dep(pool, name);
+      Id newevr = fix_namespace_dep(pool, evr);
+      return newname == name && newevr == evr ? id : pool_rel2id(pool, newname, newevr, flags, 1);
     }
   return id;
 }