File crash-fixed-uninitialised of Package crash

---
 Makefile               |    6 +++---
 defs.h                 |    4 ++--
 gdb-6.1-compiler.patch |   31 +++++++++++++++++++++++++++++++
 memory.c               |    2 +-
 4 files changed, 37 insertions(+), 6 deletions(-)

--- a/Makefile
+++ b/Makefile
@@ -39,7 +39,7 @@ GDB=gdb-6.1
 GDB_FILES=${GDB_6.1_FILES}
 GDB_OFILES=
 
-GDB_PATCH_FILES=gdb-6.1.patch
+GDB_PATCH_FILES=gdb-6.1.patch gdb-6.1-compiler.patch
 
 #
 # Default installation directory
@@ -264,8 +264,8 @@ gdb_unzip:
 	@make --no-print-directory gdb_patch
 
 gdb_patch:
-	if [ -f ${GDB}.patch ] && [ -s ${GDB}.patch ]; then \
-		patch -p0 < ${GDB}.patch; fi
+	@for FILE in ${GDB_PATCH_FILES} ; do\
+	  [ -f $$FILE ] && patch -p0 < $$FILE; done
 
 library: make_build_data ${OBJECT_FILES}
 	ar -rs ${PROGRAM}lib.a ${OBJECT_FILES}
--- a/defs.h
+++ b/defs.h
@@ -93,8 +93,8 @@
 
 #define HIST_BLKSIZE  (4096)
 
-#define STREQ(A, B)      (A && B && (strcmp((char *)(A), (char *)(B)) == 0))
-#define STRNEQ(A, B)     (A && B && \
+#define STREQ(A, B)      ((A != NULL) && (B != NULL) && (strcmp((char *)(A), (char *)(B)) == 0))
+#define STRNEQ(A, B)     ((A != NULL) && (B != NULL) && \
         (strncmp((char *)(A), (char *)(B), strlen((char *)(B))) == 0))
 #define BZERO(S, N)      (memset(S, NULLCHAR, N))
 #define BCOPY(S, D, C)   (memcpy(D, S, C))
--- /dev/null
+++ b/gdb-6.1-compiler.patch
@@ -0,0 +1,31 @@
+diff -Nurp gdb-6.1.orig/gdb/linux-proc.c gdb-6.1/gdb/linux-proc.c
+--- gdb-6.1.orig/gdb/linux-proc.c	2007-11-09 19:40:08.000000000 +0100
++++ gdb-6.1/gdb/linux-proc.c	2007-11-09 19:40:24.000000000 +0100
+@@ -149,7 +149,7 @@ linux_find_memory_regions (int (*func) (
+ 			    size, paddr_nz (addr),
+ 			    read ? 'r' : ' ',
+ 			    write ? 'w' : ' ', exec ? 'x' : ' ');
+-	  if (filename && filename[0])
++	  if (filename != NULL && filename[0])
+ 	    fprintf_filtered (gdb_stdout, " for %s", filename);
+ 	  fprintf_filtered (gdb_stdout, "\n");
+ 	}
+diff -Nurp gdb-6.1.orig/gdb/source.c gdb-6.1/gdb/source.c
+--- gdb-6.1.orig/gdb/source.c	2007-11-09 19:40:08.000000000 +0100
++++ gdb-6.1/gdb/source.c	2007-11-09 19:40:49.000000000 +0100
+@@ -149,6 +149,7 @@ get_current_source_symtab_and_line (void
+ {
+   struct symtab_and_line cursal;
+ 
++  cursal.section = NULL;
+   cursal.symtab = current_source_symtab;
+   cursal.line = current_source_line;
+   cursal.pc = 0;
+@@ -188,6 +189,7 @@ set_current_source_symtab_and_line (cons
+ {
+   struct symtab_and_line cursal;
+   
++  cursal.section = NULL;
+   cursal.symtab = current_source_symtab;
+   cursal.line = current_source_line;
+ 
--- a/memory.c
+++ b/memory.c
@@ -2968,7 +2968,7 @@ do_vm_flags(ulong flags)
 #define VM_REF_CHECK_DECVAL(X,V) \
    (DO_REF_SEARCH(X) && ((X)->cmdflags & VM_REF_NUMBER) && ((X)->decval == (V)))
 #define VM_REF_CHECK_STRING(X,S) \
-   (DO_REF_SEARCH(X) && (S) && FILENAME_COMPONENT((S),(X)->str))
+   (DO_REF_SEARCH(X) && (S != NULL) && FILENAME_COMPONENT((S),(X)->str))
 #define VM_REF_FOUND(X)    ((X) && ((X)->cmdflags & VM_REF_HEADER))
 
 ulong
openSUSE Build Service is sponsored by