]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
merge mainline into hints
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 23 Dec 2011 17:46:06 +0000 (18:46 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 23 Dec 2011 17:46:06 +0000 (18:46 +0100)
grub-core/disk/ieee1275/ofdisk.c

index 2cd43d80a98c284260657ba1fbc1112d57670c20..b4a8d969cc5e5f807959d9532dc51b07234897d9 100644 (file)
@@ -198,8 +198,14 @@ grub_ofdisk_iterate (int (*hook) (const char *name),
          if (grub_strncmp (ent->shortest, "cdrom", 5) == 0)
            continue;
 
-         if (hook (ent->shortest))
-           return 1;
+         {
+           char buffer[sizeof ("ieee1275/") + grub_strlen (env->shortest)];
+           char *ptr;
+           ptr = grub_stpcpy (buffer, "ieee1275/");
+           grub_strcpy (ptr, env->shortest);
+           if (hook (buffer))
+             return 1;
+         }
        }
     }    
   return 0;
@@ -241,7 +247,10 @@ grub_ofdisk_open (const char *name, grub_disk_t disk)
   char prop[64];
   grub_ssize_t actual;
 
-  devpath = compute_dev_path (name);
+  if (grub_strncmp (devpath, "ieee1275/", sizeof ("ieee1275/") - 1) != 0)
+      return grub_error (GRUB_ERR_UNKNOWN_DEVICE,
+                        "not IEEE1275 device");
+  devpath = compute_dev_path (name + sizeof ("ieee1275/") - 1);
   if (! devpath)
     return grub_errno;