mirror of
git://git.yoctoproject.org/poky
synced 2026-09-29 19:52:43 +00:00
Currently, some segfaults are reported when running ptest:
mdadm[12333]: segfault at 0 ip 00007fe855924060 sp 00007ffc4d6caf88 error 4 in libc.so.6[7f)
Code: d2 0f 84 b7 0f 00 00 48 83 fa 01 0f 84 b9 0f 00 00 49 89 d3 89 f1 89 f8 48 83 e1 3f 4f
Backport the following upstream commits to fix them:
679bd9508a30 ("DDF: Cleanup validate_geometry_ddf_container()")
2b93288a5650 ("DDF: Fix NULL pointer dereference in validate_geometry_ddf()")
548e9b916f86 ("mdadm/Grow: Fix use after close bug by closing after fork")
9ae62977b51d ("monitor: Avoid segfault when calling NULL get_bad_blocks")
The fixes are part of the "Bug fixes and testing improvments" patchset [1].
[1] https://www.spinics.net/lists/raid/msg70621.html
(From OE-Core rev: 9585009e3e505b361cd32b14e0e85e77e7822878)
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
57 lines
1.7 KiB
Diff
57 lines
1.7 KiB
Diff
From 14f110f0286d38e29ef5e51d7f72e049c2f18323 Mon Sep 17 00:00:00 2001
|
|
From: Logan Gunthorpe <logang@deltatee.com>
|
|
Date: Wed, 22 Jun 2022 14:25:08 -0600
|
|
Subject: [PATCH 2/4] DDF: Fix NULL pointer dereference in
|
|
validate_geometry_ddf()
|
|
|
|
A relatively recent patch added a call to validate_geometry() in
|
|
Manage_add() that has level=LEVEL_CONTAINER and chunk=NULL.
|
|
|
|
This causes some ddf tests to segfault which aborts the test suite.
|
|
|
|
To fix this, avoid dereferencing chunk when the level is
|
|
LEVEL_CONTAINER or LEVEL_NONE.
|
|
|
|
Fixes: 1f5d54a06df0 ("Manage: Call validate_geometry when adding drive to external container")
|
|
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
|
Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
|
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
|
|
|
Upstream-Status: Backport
|
|
|
|
Reference to upstream patch:
|
|
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=2b93288a5650
|
|
|
|
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
|
|
---
|
|
super-ddf.c | 6 +++---
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/super-ddf.c b/super-ddf.c
|
|
index 65cf727..3ef1293 100644
|
|
--- a/super-ddf.c
|
|
+++ b/super-ddf.c
|
|
@@ -3369,9 +3369,6 @@ static int validate_geometry_ddf(struct supertype *st,
|
|
* If given BVDs, we make an SVD, changing all the GUIDs in the process.
|
|
*/
|
|
|
|
- if (*chunk == UnSet)
|
|
- *chunk = DEFAULT_CHUNK;
|
|
-
|
|
if (level == LEVEL_NONE)
|
|
level = LEVEL_CONTAINER;
|
|
if (level == LEVEL_CONTAINER) {
|
|
@@ -3381,6 +3378,9 @@ static int validate_geometry_ddf(struct supertype *st,
|
|
freesize, verbose);
|
|
}
|
|
|
|
+ if (*chunk == UnSet)
|
|
+ *chunk = DEFAULT_CHUNK;
|
|
+
|
|
if (!dev) {
|
|
mdu_array_info_t array = {
|
|
.level = level,
|
|
--
|
|
2.39.1
|
|
|