----- 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