* util/grub-probe.c (probe): Don't crash on canonicalize_file_name
failure. Put back lost PRINT_DRIVE.
This commit is contained in:
parent
e9084abefd
commit
65f08dbfe0
3 changed files with 19 additions and 4 deletions
|
@ -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>
|
2012-02-03 Richard Laager <rlaager@wiktel.com>
|
||||||
|
|
||||||
* util/getroot.c (find_root_devices_from_libzfs): Fix compilation error.
|
* util/getroot.c (find_root_devices_from_libzfs): Fix compilation error.
|
||||||
|
|
|
@ -846,10 +846,7 @@ grub_guess_root_devices (const char *dir)
|
||||||
int root, dm;
|
int root, dm;
|
||||||
*cur = canonicalize_file_name (tmp);
|
*cur = canonicalize_file_name (tmp);
|
||||||
if (*cur == NULL)
|
if (*cur == NULL)
|
||||||
{
|
grub_util_error (_("failed to get canonical path of %s"), tmp);
|
||||||
grub_util_error (_("failed to get canonical path of %s"), tmp);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
free (tmp);
|
free (tmp);
|
||||||
root = (strcmp (*cur, "/dev/root") == 0);
|
root = (strcmp (*cur, "/dev/root") == 0);
|
||||||
dm = (strncmp (*cur, "/dev/dm-", sizeof ("/dev/dm-") - 1) == 0);
|
dm = (strncmp (*cur, "/dev/dm-", sizeof ("/dev/dm-") - 1) == 0);
|
||||||
|
|
|
@ -323,6 +323,8 @@ probe (const char *path, char **device_names, char delim)
|
||||||
if (path != NULL)
|
if (path != NULL)
|
||||||
{
|
{
|
||||||
grub_path = canonicalize_file_name (path);
|
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);
|
device_names = grub_guess_root_devices (grub_path);
|
||||||
free (grub_path);
|
free (grub_path);
|
||||||
}
|
}
|
||||||
|
@ -358,6 +360,16 @@ probe (const char *path, char **device_names, char delim)
|
||||||
}
|
}
|
||||||
*curdrive = 0;
|
*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
|
if (print == PRINT_FS || print == PRINT_FS_UUID
|
||||||
|| print == PRINT_FS_LABEL)
|
|| print == PRINT_FS_LABEL)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue