]> git.proxmox.com Git - grub2.git/commitdiff
* grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Escape commas.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 20 Jun 2012 21:37:24 +0000 (23:37 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 20 Jun 2012 21:37:24 +0000 (23:37 +0200)
ChangeLog
grub-core/disk/ieee1275/ofdisk.c

index 26b2ceab2c26a703c54e132a4e40599669f591e5..8ef11caba6b283a5e488225e2c8470a71318d677 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2012-06-20  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Escape commas.
+
 2012-06-20  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/kern/main.c (grub_set_prefix_and_root): Skip escaped commas
index 8a7c639be277087a8874068f27e4964674ccd270..a387ab810b3392415c292bc619cd13281a8973f3 100644 (file)
@@ -265,10 +265,17 @@ grub_ofdisk_iterate (int (*hook) (const char *name),
            continue;
 
          {
-           char buffer[sizeof ("ieee1275/") + grub_strlen (ent->shortest)];
-           char *ptr;
-           ptr = grub_stpcpy (buffer, "ieee1275/");
-           grub_strcpy (ptr, ent->shortest);
+           char buffer[sizeof ("ieee1275/") + 2 * grub_strlen (ent->shortest)];
+           const char *iptr;
+           char *optr;
+           optr = grub_stpcpy (buffer, "ieee1275/");
+           for (iptr = ent->shortest; *iptr; iptr++)
+             {
+               if (*iptr == ',')
+                 *optr++ = '\\';
+               *optr++ = *iptr++;
+             }
+           *optr = 0;
            if (hook (buffer))
              return 1;
          }