File grub-0.97-devpath-parsing-error-rhbz626447.patch of Package grub
From: Peter Jones <pjones@redhat.com>
Date: Mon, 30 Aug 2010 10:58:36 -0400
Subject: [PATCH] Fix parsing error in "device" comman on UEFI.
Gotta handle that NULL case on strchr() return.
--- a/efi/efidp.c
+++ a/efi/efidp.c
@@ -587,19 +587,19 @@ get_next_param(char *pos, char **end, char *tmp)
**end = *tmp;
openparen = grub_strchr(pos, '(');
- if (*openparen)
+ if (openparen && *openparen)
{
pos = grub_strnchr(openparen + 1, ' ');
comma = grub_strchr(pos, ',');
closeparen = grub_strchr(pos, ')');
- if (*comma)
+ if (comma && *comma)
{
*tmp = *comma;
*comma = '\0';
*end = comma;
}
- else if (*closeparen)
+ else if (closeparen && *closeparen)
{
*tmp = *closeparen;
*closeparen = '\0';
@@ -609,19 +609,19 @@ get_next_param(char *pos, char **end, char *tmp)
}
comma = grub_strchr(pos, ',');
- if (*comma)
+ if (comma && *comma)
{
pos = grub_strnchr(comma + 1, ' ');
comma = grub_strchr(pos, ',');
closeparen = grub_strchr(pos, ')');
- if (*comma)
+ if (comma && *comma)
{
*tmp = *comma;
*comma = '\0';
*end = comma;
}
- else if (*closeparen)
+ else if (closeparen && *closeparen)
{
*tmp = *closeparen;
*closeparen = '\0';
@@ -631,7 +631,7 @@ get_next_param(char *pos, char **end, char *tmp)
}
closeparen = grub_strchr(pos, ')');
- if (*closeparen)
+ if (closeparen && *closeparen)
pos = grub_strnchr(closeparen + 1, ' ');
return pos;