From 7580fc84357674ce73e6b5c0378fe978e5a38056 Mon Sep 17 00:00:00 2001 From: zhuqingfu Date: Wed, 29 Sep 2021 17:27:12 +0800 Subject: [PATCH] fix memory errors in make test Signed-off-by: zhuqingfu --- ...all-memory-errors-found-in-make-test.patch | 70 +++++++++++++++++++ ...earing-bits-outside-of-the-added-map.patch | 22 ++++++ libsolv.spec | 10 ++- 3 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 Fix-all-memory-errors-found-in-make-test.patch create mode 100644 Fix-deduceq2addedap-clearing-bits-outside-of-the-added-map.patch diff --git a/Fix-all-memory-errors-found-in-make-test.patch b/Fix-all-memory-errors-found-in-make-test.patch new file mode 100644 index 0000000..71307ab --- /dev/null +++ b/Fix-all-memory-errors-found-in-make-test.patch @@ -0,0 +1,70 @@ +From 437820ed28ecf3a1d642d21a6713d3b6089a07db Mon Sep 17 00:00:00 2001 +From: Michael Schroeder +Date: Wed, 3 Jun 2020 14:27:10 +0200 +Subject: [PATCH] Fix all memory errors found in 'make test' + +Based on pull request #391 by Aaron D. Marasco. Thanks! +--- + src/selection.c | 2 ++ + tools/testsolv.c | 13 +++++++++++++ + 2 files changed, 15 insertions(+) + +diff --git a/src/selection.c b/src/selection.c +index 5f01e2b50..a8e60f790 100644 +--- a/src/selection.c ++++ b/src/selection.c +@@ -150,6 +150,7 @@ selection_flatten(Pool *pool, Queue *selection) + if (!q.count) + { + queue_empty(selection); ++ queue_free(&q); + return; + } + queue_truncate(selection, 2); +@@ -163,6 +164,7 @@ selection_flatten(Pool *pool, Queue *selection) + selection->elements[0] = SOLVER_SOLVABLE | SOLVER_NOAUTOSET; + selection->elements[1] = q.elements[0]; + } ++ queue_free(&q); + } + + /* only supports simple rels plus REL_ARCH */ +diff --git a/tools/testsolv.c b/tools/testsolv.c +index 18dfcfe1c..a9e67ec71 100644 +--- a/tools/testsolv.c ++++ b/tools/testsolv.c +@@ -66,6 +66,16 @@ reportsolutioncb(Solver *solv, void *cbdata) + return 0; + } + ++static void ++free_considered(Pool *pool) ++{ ++ if (pool->considered) ++ { ++ map_free(pool->considered); ++ pool->considered = solv_free(pool->considered); ++ } ++} ++ + int + main(int argc, char **argv) + { +@@ -149,7 +159,9 @@ main(int argc, char **argv) + solv = testcase_read(pool, fp, argv[optind], &job, &result, &resultflags); + if (!solv) + { ++ free_considered(pool); + pool_free(pool); ++ queue_free(&job); + exit(resultflags == 77 ? 77 : 1); + } + if (reusesolv) +@@ -349,6 +361,7 @@ main(int argc, char **argv) + } + if (reusesolv) + solver_free(reusesolv); ++ free_considered(pool); + pool_free(pool); + fclose(fp); + } diff --git a/Fix-deduceq2addedap-clearing-bits-outside-of-the-added-map.patch b/Fix-deduceq2addedap-clearing-bits-outside-of-the-added-map.patch new file mode 100644 index 0000000..b6a1fca --- /dev/null +++ b/Fix-deduceq2addedap-clearing-bits-outside-of-the-added-map.patch @@ -0,0 +1,22 @@ +From f2fd0822b180188dba6ad1e042eab890f1b0414f Mon Sep 17 00:00:00 2001 +From: Michael Schroeder +Date: Tue, 8 Sep 2020 15:03:41 +0200 +Subject: [PATCH] Fix deduceq2addedmap clearing bits outside of the added map + +--- + src/solver.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/solver.c b/src/solver.c +index 7fcc3fb50..25f48f1ae 100644 +--- a/src/solver.c ++++ b/src/solver.c +@@ -3280,7 +3280,7 @@ deduceq2addedmap(Solver *solv, Map *addedmap) + if (p > 0) + MAPSET(addedmap, p); + else +- MAPCLR(addedmap, p); ++ MAPCLR(addedmap, -p); + } + } + diff --git a/libsolv.spec b/libsolv.spec index 1ac7c83..c7b9aa0 100644 --- a/libsolv.spec +++ b/libsolv.spec @@ -15,13 +15,15 @@ Name: libsolv Version: 0.7.14 -Release: 2 +Release: 3 Summary: Package dependency solver License: BSD URL: https://github.com/openSUSE/libsolv Source: https://github.com/openSUSE/libsolv/archive/%{version}/%{name}-%{version}.tar.gz Patch0: CVE-2021-3200.patch +Patch1: Fix-all-memory-errors-found-in-make-test.patch +Patch2: Fix-deduceq2addedap-clearing-bits-outside-of-the-added-map.patch BuildRequires: cmake gcc-c++ ninja-build pkgconfig(rpm) zlib-devel BuildRequires: libxml2-devel xz-devel bzip2-devel libzstd-devel @@ -189,6 +191,12 @@ Python 3 version. %{_mandir}/man3/%{name}*.3* %changelog +* Wed Sep 29 2021 zhuqingfu - 0.7.14-3 +- Type:bugfix +- CVE:NA +- SUG:NA +- DESC:fix memory errors in make test + * Fri May 28 2021 gaihuiying - 0.7.14-2 - Type:cves - CVE:CVE-2021-3200 -- Gitee