On Tue, 2011-12-06 at 09:50 -0500, Dave Anderson wrote:
----- Original Message -----
> On Mon, 2011-12-05 at 15:03 -0500, Dave Anderson wrote:
> >
> > ----- Original Message -----
> > >
> > > So I guess the proper thing to do would be to check for the FNAME bit
> > > in the FLG byte, and if it's not set, I guess we could either accept
> > > the file without prejudice, or print a message indicating that the
> > > name has been stripped and that -f should be used.
> >
> > I wasn't aware of "gzip -n" or "gzip --no-name" when I
wrote the
> > original function. How does the attached patch work for you?
> > Instead of either suggestion above, it will just print a NOTE if
> > you don't use "-f".
> >
> > Dave
> >
> Hi Dave,
>
> The attached patch works for me. It prints the file name is unknown. How
> about printing the file name is unknown and -f should be used as u
> mentioned in the previous mail.
OK, will do -- queued for crash-6.0.2.
Thanks
Dave
Hi Dave,
A return statement is missing in the if condition when a .gz file header
contains no filename. Request you to include the same.
--- crash-6.0.1/symbols.c.orig
+++ crash-6.0.1/symbols.c
@@ -2983,6 +2983,8 @@ is_compressed_kernel(char *file, char **
#define GZIP (1)
#define BZIP2 (2)
+#define FNAME (1 << 3)
+
if ((fd = open(file, O_RDONLY)) < 0)
return FALSE;
@@ -2995,7 +2997,12 @@ is_compressed_kernel(char *file, char **
type = 0;
if ((header[0] == 0x1f) && (header[1] == 0x8b) && (header[2] ==
8)) {
- if (!STRNEQ((char *)&header[10], "vmlinux") &&
+ if (!(header[3] & FNAME)) {
+ if (!(st->flags & FORCE_DEBUGINFO))
+ error(NOTE, "%s: "
+ "original filename unknown\n\n",
+ file);
return FALSE;----> to be included.
+ } else if (!STRNEQ((char *)&header[10], "vmlinux")
&&
!(st->flags & FORCE_DEBUGINFO)) {
error(INFO, "%s: compressed file name does not "
"start with \"vmlinux\"\n",
&header[10]);
Regards,
Aruna