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