summaryrefslogtreecommitdiff
path: root/testing/mdadm
diff options
context:
space:
mode:
authorroot <root@rshg047.dnsready.net>2011-04-14 04:54:18 +0000
committerroot <root@rshg047.dnsready.net>2011-04-14 04:54:18 +0000
commit0917a0682e48c4261e47d743725d990f47f6ec95 (patch)
tree32b99e036a20918da470922bf40276cedcfe7506 /testing/mdadm
parent9c49791f6e912bd4834f00f2c6b3a00e6c12bb73 (diff)
Thu Apr 14 04:54:18 UTC 2011
Diffstat (limited to 'testing/mdadm')
-rw-r--r--testing/mdadm/PKGBUILD24
-rw-r--r--testing/mdadm/segfault-3.2.1.patch68
2 files changed, 84 insertions, 8 deletions
diff --git a/testing/mdadm/PKGBUILD b/testing/mdadm/PKGBUILD
index d6c56b553..b9296a91f 100644
--- a/testing/mdadm/PKGBUILD
+++ b/testing/mdadm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 117346 2011-03-31 06:36:59Z tpowa $
+# $Id: PKGBUILD 119650 2011-04-13 07:07:09Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Judd Vinet <jvinet@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 @@ source=(ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/mdadm-$pkgver.tar.bz2
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 @@ package() {
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')
diff --git a/testing/mdadm/segfault-3.2.1.patch b/testing/mdadm/segfault-3.2.1.patch
new file mode 100644
index 000000000..6042d86c2
--- /dev/null
+++ b/testing/mdadm/segfault-3.2.1.patch
@@ -0,0 +1,68 @@
+From 4019ad07013a5d8618b867f724d1c4a13c5cb05d Mon Sep 17 00:00:00 2001
+From: Jonathan Liu <net147@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@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@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@yahoo.com>
+Signed-off-by: NeilBrown <neilb@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
+