]> git.proxmox.com Git - grub2.git/blobdiff - fs/cpio.c
merge mainline into mips
[grub2.git] / fs / cpio.c
index 17c37975d65fade5c280eeea069703f520de6bb4..c087b4f90e1d9773e2f7740328b8d756e3ab4ec1 100644 (file)
--- a/fs/cpio.c
+++ b/fs/cpio.c
@@ -280,8 +280,10 @@ grub_cpio_open (grub_file_t file, const char *name)
 
       /* Compare NAME and FN by hand in order to cope with duplicate
         slashes.  */
-      i = 1;
+      i = 0;
       j = 0;
+      while (name[i] == '/')
+       i++;
       while (1)
        {
          if (name[i] != fn[j])
@@ -290,13 +292,16 @@ grub_cpio_open (grub_file_t file, const char *name)
          if (name[i] == '\0')
            break;
 
-         if (name[i] == '/' && name[i+1] == '/')
+         while (name[i] == '/' && name[i+1] == '/')
            i++;
 
          i++;
          j++;
        }
 
+      if (name[i] != fn[j])
+       goto no_match;
+
       file->data = data;
       file->size = data->size;
       grub_free (fn);