[arch-commits] Commit in mdadm/trunk (PKGBUILD segfault-3.2.1.patch)

Tobias Powalowski tpowa at archlinux.org
Wed Apr 13 07:07:09 UTC 2011


    Date: Wednesday, April 13, 2011 @ 03:07:09
  Author: tpowa
Revision: 119650

upgpkg: mdadm 3.2.1-2
fix segfaults in mdadm monitor mode

Added:
  mdadm/trunk/segfault-3.2.1.patch
Modified:
  mdadm/trunk/PKGBUILD

----------------------+
 PKGBUILD             |   22 ++++++++++-----
 segfault-3.2.1.patch |   68 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 83 insertions(+), 7 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2011-04-13 04:54:21 UTC (rev 119649)
+++ PKGBUILD	2011-04-13 07:07:09 UTC (rev 119650)
@@ -3,7 +3,7 @@
 # Contributor: Judd Vinet <jvinet at zeroflux.org>
 pkgname=mdadm
 pkgver=3.2.1
-pkgrel=1
+pkgrel=2
 pkgdesc="A tool for managing/monitoring Linux md device arrays, also known as Software RAID"
 arch=(i686 x86_64)
 license=('GPL')
@@ -16,17 +16,14 @@
         mdadm 
         mdadm.conf 
         mdadm_install
-        mdadm_hook)
+        mdadm_hook
+        segfault-3.2.1.patch)
 install=mdadm.install
 replaces=('raidtools')
-md5sums=('d1e2549202bd79d9e99f1498d1109530'
-         '7bff0e506fb6017510c8ec4a01896952'
-         '00cbed931db4f15b6ce49e3e7d433966'
-         '865c3d39e5f5dae58388160b563981f1'
-         '1a3eb63832cecd6550f5b0a21d58cfdb')
 
 build() {
   cd $srcdir/$pkgname-$pkgver
+  patch -Np1 -i ../segfault-3.2.1.patch
   make CXFLAGS="$CFLAGS"
 }
 
@@ -43,3 +40,14 @@
   make MDASSEMBLE_AUTO=1 mdassemble
   install -D -m755 mdassemble $pkgdir/sbin/mdassemble
 }
+md5sums=('5af65c32193fe0aea1aac4c4d44ac383'
+         '7bff0e506fb6017510c8ec4a01896952'
+         '00cbed931db4f15b6ce49e3e7d433966'
+         '865c3d39e5f5dae58388160b563981f1'
+         '1a3eb63832cecd6550f5b0a21d58cfdb')
+md5sums=('d1e2549202bd79d9e99f1498d1109530'
+         '7bff0e506fb6017510c8ec4a01896952'
+         '00cbed931db4f15b6ce49e3e7d433966'
+         '865c3d39e5f5dae58388160b563981f1'
+         '1a3eb63832cecd6550f5b0a21d58cfdb'
+         '2fd25605bd1836a33c689ac442cb73ed')

Added: segfault-3.2.1.patch
===================================================================
--- segfault-3.2.1.patch	                        (rev 0)
+++ segfault-3.2.1.patch	2011-04-13 07:07:09 UTC (rev 119650)
@@ -0,0 +1,68 @@
+From 4019ad07013a5d8618b867f724d1c4a13c5cb05d Mon Sep 17 00:00:00 2001
+From: Jonathan Liu <net147 at gmail.com>
+Date: Tue, 12 Apr 2011 18:28:01 +1000
+Subject: [PATCH] Monitor: avoid NULL dereference with 0.90 metadata
+
+0.90 array do not report the metadata type in /proc/mdstat, so
+we cannot assume that mse->metadata_version is non-NULL.
+
+So add an appropriate check.
+
+This adds an additional check missed by commit
+eb28e119b03fd5149886ed516fa4bb006ad3602e.
+
+Signed-off-by: NeilBrown <neilb at suse.de>
+---
+ Monitor.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/Monitor.c b/Monitor.c
+index a3ea724..55aebeb 100644
+--- a/Monitor.c
++++ b/Monitor.c
+@@ -577,7 +577,8 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
+ 			info[i].major = info[i].minor = 0;
+ 	}
+ 
+-	if (strncmp(mse->metadata_version, "external:", 9) == 0 &&
++	if (mse->metadata_version &&
++	    strncmp(mse->metadata_version, "external:", 9) == 0 &&
+ 	    is_subarray(mse->metadata_version+9))
+ 		st->parent_dev =
+ 			devname2devnum(mse->metadata_version+10);
+-- 
+1.7.2.3
+
+From eb28e119b03fd5149886ed516fa4bb006ad3602e Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb at suse.de>
+Date: Tue, 5 Apr 2011 09:16:57 +1000
+Subject: [PATCH] Monitor: avoid NULL dereference with 0.90 metadata
+
+0.90 array do not report the metadata type in /proc/mdstat, so
+we cannot assume that mse->metadata_version is non-NULL.
+
+So add an appropriate check.
+
+Reported-by: Eugene <hdejin at yahoo.com>
+Signed-off-by: NeilBrown <neilb at suse.de>
+---
+ Monitor.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/Monitor.c b/Monitor.c
+index 291e465..337785d 100644
+--- a/Monitor.c
++++ b/Monitor.c
+@@ -688,7 +688,8 @@ static int add_new_arrays(struct mdstat_ent *mdstat, struct state **statelist,
+ 			st->devnum = mse->devnum;
+ 			st->percent = -2;
+ 			st->expected_spares = -1;
+-			if (strncmp(mse->metadata_version, "external:", 9) == 0 &&
++			if (mse->metadata_version &&
++			    strncmp(mse->metadata_version, "external:", 9) == 0 &&
+ 			    is_subarray(mse->metadata_version+9))
+ 				st->parent_dev =
+ 					devname2devnum(mse->metadata_version+10);
+-- 
+1.7.2.3
+




More information about the arch-commits mailing list