Fix the handling of namelen and argument parsing in linux.c32
authorFerenc Wagner <wferi@niif.hu>
Tue, 3 Apr 2007 17:07:20 +0000 (19:07 +0200)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 3 Apr 2007 17:27:59 +0000 (10:27 -0700)
com32/lib/syslinux/initramfs_file.c
com32/modules/linux.c

index bf041e7..26d19c5 100644 (file)
@@ -126,7 +126,7 @@ int initramfs_mknod(struct initramfs *ihead, const char *filename,
 
   bp += sprintf(bp, "070701%08x%08x%08x%08x%08x%08x%08x%08x%08x"
                "%08x%08x%08x%08x", next_ino++, mode,
-               0, 0, 1, 0, len, 0, 1, major, minor, len+1, 0);
+               0, 0, 1, 0, len, 0, 1, major, minor, namelen+1, 0);
   memcpy(bp, filename, namelen);
   bp += len;
   pad = (-(sizeof(struct cpio_header)+namelen) & 3) + 1;
index dc5da57..f1db8c8 100644 (file)
@@ -156,6 +156,7 @@ int main(int argc, char *argv[])
       fprintf(stderr, "%s: unknown option: %s\n", progname, arg);
       return 1;
     }
+    argp++;
   }
 
   if (!arg) {