Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=27a673f89a088b92aca67b0bac35a6baee4ee413

commit 27a673f89a088b92aca67b0bac35a6baee4ee413
Author: Daniel Exner <d...@joshua.dragonslave.zz>
Date:   Mon Oct 12 20:34:22 2009 +0200

mdadm-3.0.2-2-i686

* added patch to fix udev segfault at boot
* removed sha1sums
* thx Boobaa :-)

diff --git a/source/base/mdadm/FrugalBuild b/source/base/mdadm/FrugalBuild
index 1fb7d8c..ddb077f 100644
--- a/source/base/mdadm/FrugalBuild
+++ b/source/base/mdadm/FrugalBuild
@@ -3,7 +3,7 @@

pkgname=mdadm
pkgver=3.0.2
-pkgrel=1
+pkgrel=2
pkgdesc="A tool for managing software RAID under Linux"
url="http://www.kernel.org/pub/linux/utils/raid/mdadm/";
depends=('glibc>=2.8-3')
@@ -14,8 +14,9 @@ backup=(etc/{mdadm.conf,sysconfig/mdadm})
_F_archive_grepv="\(rc\|devel\)"
up2date="Flasttar $url"
source=($url/$pkgname-$pkgver.tar.bz2 \
+       segfault_fix.patch \
mdadm rc.mdadm rc.mdadm-{de,hu}.po)
-signatures=("${source[0]}.sign" '' '' '' '')
+signatures=("${source[0]}.sign" '' '' '' '' '')

build()
{
diff --git a/source/base/mdadm/segfault_fix.patch 
b/source/base/mdadm/segfault_fix.patch
new file mode 100644
index 0000000..27d758a
--- /dev/null
+++ b/source/base/mdadm/segfault_fix.patch
@@ -0,0 +1,49 @@
+From 2b9aa337af7291d3f141322da96c9f667c99d53c Mon Sep 17 00:00:00 2001
+From: NeilBrown <ne...@suse.de>
+Date: Thu, 1 Oct 2009 12:51:04 +1000
+Subject: [PATCH] Fix null-dereference in set_member_info
+
+set_member_info would try to dereference ->metadata_version, without
+checking that it isn't NULL.
+
+Signed-off-by: NeilBrown <ne...@suse.de>
+---
+ mapfile.c |   15 +++++++++------
+ 1 files changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/mapfile.c b/mapfile.c
+index a3038be..ed59db5 100644
+--- a/mapfile.c
++++ b/mapfile.c
+@@ -303,19 +303,22 @@ struct map_ent *map_by_name(struct map_ent **map, char 
*name)
+  */
+ static void set_member_info(struct supertype *st, struct mdstat_ent *ent)
+ {
+-      char version[strlen(ent->metadata_version)+1];
+
+       st->subarray[0] = '\0';
+
+-      if (strncmp(ent->metadata_version, "external:", 9) != 0)
++      if (ent->metadata_version == NULL ||
++          strncmp(ent->metadata_version, "external:", 9) != 0)
+               return;
+
+-      strcpy(version, ent->metadata_version);
+-
+-      if (is_subarray(&version[9])) {
+-              char *subarray = strrchr(version, '/');
++      if (is_subarray(&ent->metadata_version[9])) {
++              char version[strlen(ent->metadata_version)+1];
++              char *subarray;
+               char *name = &version[10];
+
++              strcpy(version, ent->metadata_version);
++              subarray = strrchr(version, '/');
++              name = &version[10];
++
+               if (!subarray)
+                       return;
+               *subarray++ = '\0';
+--
+1.6.3.3
+
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to