29 lines
1.1 KiB
Diff
29 lines
1.1 KiB
Diff
From 0ecd4f310318d9bd91db48e5c9dc7e749fbed82a Mon Sep 17 00:00:00 2001
|
|
From: Thomas Lam <79589038+tl-hbk@users.noreply.github.com>
|
|
Date: Tue, 30 Mar 2021 05:33:52 -0700
|
|
Subject: [PATCH] Fix segfault in resolve_jobrules
|
|
|
|
In selectandinstall sometimes rules are added and a realloc is required if there's
|
|
no more memory available in the allocated block. r-- would just decrement the old
|
|
pointer but the realloc could return a completely different block of memory
|
|
|
|
Conflict: NA
|
|
Reference: https://github.com/openSUSE/libsolv/commit/0ecd4f310318d9bd91db48e5c9dc7e749fbed82a
|
|
|
|
---
|
|
src/solver.c | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
diff --git a/src/solver.c b/src/solver.c
|
|
index 9c02cc76..89a2ed10 100644
|
|
--- a/src/solver.c
|
|
+++ b/src/solver.c
|
|
@@ -1629,6 +1629,7 @@ resolve_jobrules(Solver *solv, int level, int disablerules, Queue *dq)
|
|
}
|
|
olevel = level;
|
|
level = selectandinstall(solv, level, dq, disablerules, i, SOLVER_REASON_RESOLVE_JOB);
|
|
+ r = solv->rules + i; /* selectandinstall may have added more rules */
|
|
if (level <= olevel)
|
|
{
|
|
if (level == olevel)
|