mdadm: backport one patch to fix segfault problem in monitor.c

fix issue:https://gitee.com/src-openeuler/mdadm/issues/I611EL

backport upstream bugfix patch to fix segfault problem

Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
This commit is contained in:
Zhiqiang Liu 2022-11-14 15:40:10 +08:00
parent 23c5d609b6
commit fc24ae7689
2 changed files with 40 additions and 1 deletions

View File

@ -0,0 +1,35 @@
From 9ae62977b51dab0f4bb46b1c8ea5ebd1705b2f4d Mon Sep 17 00:00:00 2001
From: Logan Gunthorpe <logang@deltatee.com>
Date: Wed, 22 Jun 2022 14:25:10 -0600
Subject: [PATCH] monitor: Avoid segfault when calling NULL get_bad_blocks
Not all struct superswitch implement a get_bad_blocks() function,
yet mdmon seems to call it without checking for NULL and thus
occasionally segfaults in the test 10ddf-geometry.
Fix this by checking for NULL before calling it.
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>
---
monitor.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/monitor.c b/monitor.c
index b877e595..820a93d0 100644
--- a/monitor.c
+++ b/monitor.c
@@ -311,6 +311,9 @@ static int check_for_cleared_bb(struct active_array *a, struct mdinfo *mdi)
struct md_bb *bb;
int i;
+ if (!ss->get_bad_blocks)
+ return -1;
+
/*
* Get a list of bad blocks for an array, then read list of
* acknowledged bad blocks from kernel and compare it against metadata
--
2.33.0

View File

@ -1,6 +1,6 @@
Name: mdadm
Version: 4.2
Release: 1
Release: 2
Summary: The software RAID arrays user manage tools
License: GPLv2+
URL: http://www.kernel.org/pub/linux/utils/raid/mdadm/
@ -12,6 +12,7 @@ Source3: mdadm.conf
Patch1: 0001-mdadm-remove-Werror-to-fix-Werror-address-of-packed-.patch
Patch2: 0002-mdadm-Fix-mdadm-r-remove-option-regresision.patch
Patch3: 0003-monitor-Avoid-segfault-when-calling-NULL-get_bad_blo.patch
BuildRequires: systemd gcc binutils libudev-devel
Requires(post): systemd coreutils
@ -77,6 +78,9 @@ install -d -m 710 %{buildroot}/var/run/mdadm/
%{_mandir}/man*/*
%changelog
* Mon Nov 14 2022 Zhiqiang Liu <liuzhiqiang26@huawei.com> - 4.2-2
- backport upstream bugfix patch to fix segfault problem
* Mon Oct 17 2022 wuguanghao <wuguanghao3@huawei.com> - 4.2-1
- upgrade version to 4.2