* util/grub-probe.c (probe): Don't crash on canonicalize_file_name

failure.
	Put back lost PRINT_DRIVE.
This commit is contained in:
Richard Laager 2012-02-03 11:02:06 +01:00 committed by Vladimir 'phcoder' Serbinenko
parent e9084abefd
commit 65f08dbfe0
3 changed files with 19 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2012-02-03 Richard Laager <rlaager@wiktel.com>
* util/grub-probe.c (probe): Don't crash on canonicalize_file_name
failure.
Put back lost PRINT_DRIVE.
2012-02-03 Richard Laager <rlaager@wiktel.com>
* util/getroot.c (find_root_devices_from_libzfs): Fix compilation error.

View File

@ -846,10 +846,7 @@ grub_guess_root_devices (const char *dir)
int root, dm;
*cur = canonicalize_file_name (tmp);
if (*cur == NULL)
{
grub_util_error (_("failed to get canonical path of %s"), tmp);
break;
}
grub_util_error (_("failed to get canonical path of %s"), tmp);
free (tmp);
root = (strcmp (*cur, "/dev/root") == 0);
dm = (strncmp (*cur, "/dev/dm-", sizeof ("/dev/dm-") - 1) == 0);

View File

@ -323,6 +323,8 @@ probe (const char *path, char **device_names, char delim)
if (path != NULL)
{
grub_path = canonicalize_file_name (path);
if (! grub_path)
grub_util_error (_("failed to get canonical path of %s"), path);
device_names = grub_guess_root_devices (grub_path);
free (grub_path);
}
@ -358,6 +360,16 @@ probe (const char *path, char **device_names, char delim)
}
*curdrive = 0;
if (print == PRINT_DRIVE)
{
for (curdrive = drives_names; *curdrive; curdrive++)
{
printf ("(%s)", *curdrive);
putchar (delim);
}
goto end;
}
if (print == PRINT_FS || print == PRINT_FS_UUID
|| print == PRINT_FS_LABEL)
{