Michael Holzheu wrote:
Hi Dave!
It can happen that crash does not extract the correct Linux version string
from vmlinux. Therefore the comparison with /proc/version fails at startup:
WARNING: /usr/lib/debug/lib/modules/2.6.17-1.2519.4.21.el5/vmlinux
and /proc/version do not match!
Crash gets the release string by searching strings in vmlinux. Something
like:
>> strings vmlinux | grep "Linux version"
>`0Linux version 2.6.17-1.2519.4.21.el5 ...
On our system the string does not start with "Linux...", but with
"0Linux...".
Therefore crash assumes a wrong version string. To fix this, we should skip the
leading "0":
Weird. It must be the first string in a string section or something, presumably
in the s390 or s390x kernels only?
Looks fine -- I'll queue it up for the upstream and RHEL5-beta2 releases.
Thanks,
Dave
---
diff o-Naur crash-4.0-3.3/filesys.c crash-4.0-3.3-proc-version-check-fix/filesys.c
--- crash-4.0-3.3/filesys.c 2006-09-07 21:00:08.000000000 +0200
+++ crash-4.0-3.3-proc-version-check-fix/filesys.c 2006-09-13 15:36:54.000000000
+0200
@@ -244,10 +244,12 @@
found = FALSE;
while (fgets(buffer, BUFSIZE-1, pipe)) {
- if (!strstr(buffer, "Linux version 2."))
+ char* ptr;
+ ptr = strstr(buffer, "Linux version 2.");
+ if (!ptr)
continue;
- if (STREQ(buffer, kt->proc_version))
+ if (STREQ(ptr, kt->proc_version))
found = TRUE;
break;
}