File project.diff of Package dmraid
--- dmraid.changes.orig
+++ dmraid.changes
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Fri Nov 21 16:11:03 CST 2008 - cmeng@novell.com
+
+- fixed scandir() segment fault in libdmraid-event [bnc#443284]
+- remove 'pushd libdmraid*' in dmraid.spec
+
+-------------------------------------------------------------------
Mon Nov 10 12:44:08 CET 2008 - mkoenig@suse.de
- adapt mkinitrd script to changed UUID prefix [bnc#441479]
--- dmraid.spec.orig
+++ dmraid.spec
@@ -45,6 +45,7 @@ Patch10: dmraid-1.0.0.rc14-fixup_
Patch11: dmraid-1.0.0.rc15-scsi_serial_remove_ws.patch
# libdmraid-events
Patch50: libdmraid-events.dif
+Patch51: libdmraid-events-scandir-segfault.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: %fillup_prereq
@@ -113,9 +114,8 @@ Authors:
%patch6 -p1
%patch10 -p1
%patch11 -p1
-pushd libdmraid*
%patch50
-popd
+%patch51
cp %{SOURCE3} .
%build
--- libdmraid-events-scandir-segfault.patch.orig
+++ libdmraid-events-scandir-segfault.patch
@@ -0,0 +1,32 @@
+Index: libdmraid-events/libdmraid-events.c
+===================================================================
+--- libdmraid-events.orig/libdmraid-events.c
++++ libdmraid-events/libdmraid-events.c
+@@ -145,7 +145,7 @@ static int _repopulate(const char* devic
+ char test_path[BUF_SIZE];
+ FILE *fd;
+ DIR *dir;
+- struct dirent **dir_ent;
++ struct dirent **dir_ent = 0;
+
+ while(strcmp(curr->vol_name, device))
+ curr=curr->next;
+@@ -160,7 +160,7 @@ static int _repopulate(const char* devic
+ if(!inset) {
+ memcpy(curr->raid_mem[curr->num_sata_drives].dev_name, disk, strlen(disk));
+ i = scandir(sys_path, &dir_ent, 0, alphasort);
+- while(i--) {
++ while(i>0 && i--) {
+ if(dir_ent[i]->d_name[0] != '.') {
+ /* Append the "X:X:X:X" to sys_path */
+ memset(sys_path+strlen(SYS_SCSI_PATH), 0, BUF_SIZE-strlen(SYS_SCSI_PATH));
+@@ -188,7 +188,8 @@ static int _repopulate(const char* devic
+ free(dir_ent[i]);
+ }
+
+- free(dir_ent);
++ if (dir_ent) free(dir_ent);
++ dir_ent = 0;
+ curr->num_sata_drives++;
+ ret++;
+ }
--- libdmraid-events.dif.orig
+++ libdmraid-events.dif
@@ -1,5 +1,5 @@
---- Makefile
-+++ Makefile 2008/09/15 11:42:03
+--- libdmraid-events.orig/Makefile
++++ libdmraid-events/Makefile 2008/09/15 11:42:03
@@ -39,7 +39,7 @@