Hi Dave! This patch fixes the following (minor) problem: If the directory "/usr/src" does not exist and crash is called without parameters, it dies with SIGSEGV. The reason is that the searchdirs buffer is not allocated, if "/usr/src" is not present. This fix allocates the buffer in any case. --- filesys.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff -Naur crash-4.0-3.3/filesys.c crash-4.0-3.3-searchdirs-fix/filesys.c --- crash-4.0-3.3/filesys.c 2006-09-07 21:00:08.000000000 +0200 +++ crash-4.0-3.3-searchdirs-fix/filesys.c 2006-09-14 14:02:35.000000000 +0200 @@ -315,14 +315,12 @@ for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) cnt++; - if ((searchdirs = (char **)malloc(cnt * sizeof(char *))) - == NULL) { + if ((searchdirs = calloc(cnt, sizeof(char *))) == NULL) { error(INFO, "/usr/src/ directory list malloc: %s\n", strerror(errno)); closedir(dirp); return default_searchdirs; } - BZERO(searchdirs, cnt * sizeof(char *)); for (i = 0; i < DEFAULT_SEARCHDIRS; i++) searchdirs[i] = default_searchdirs[i]; @@ -357,6 +355,16 @@ closedir(dirp); searchdirs[cnt] = NULL; + } else { + if ((searchdirs = calloc(cnt, sizeof(char *))) == NULL) { + error(INFO, "search directory list malloc: %s\n", + strerror(errno)); + closedir(dirp); + return default_searchdirs; + } + for (i = 0; i < DEFAULT_SEARCHDIRS; i++) + searchdirs[i] = default_searchdirs[i]; + cnt = DEFAULT_SEARCHDIRS; } if (redhat_kernel_directory_v1(dirbuf)) { -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility