----- Original Message ----- > 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 > > > you 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]); Actually I did it that way on purpose, so that the "gzip -n" vmlinux file would be accepted on face value -- but with the warning. The user is not doing anything wrong that should force them to have to re-enter the command. This is what I have queued: if ((header[0] == 0x1f) && (header[1] == 0x8b) && (header[2] == 8)) { if (!(header[3] & FNAME)) { if (!(st->flags & FORCE_DEBUGINFO)) { error(INFO, "%s: " "original filename unknown\n", file); error(CONT, "Use \"-f %s\" on command line to prevent this message.\n\n", file); } } 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]); error(CONT, "Use \"-f %s\" on command line to override.\n\n", file); return FALSE; } type = GZIP; } Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility