2010-10-16 Robert Millan <rmh@gnu.org>
* grub-core/kern/emu/misc.c (grub_make_system_path_relative_to_its_root): Fix premature return when processing non-root ZFS filesystems.
This commit is contained in:
parent
2d5fed60d0
commit
1eb01cd276
2 changed files with 11 additions and 16 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2010-10-16 Robert Millan <rmh@gnu.org>
|
||||||
|
|
||||||
|
* grub-core/kern/emu/misc.c
|
||||||
|
(grub_make_system_path_relative_to_its_root): Fix premature return
|
||||||
|
when processing non-root ZFS filesystems.
|
||||||
|
|
||||||
2010-10-15 Robert Millan <rmh@gnu.org>
|
2010-10-15 Robert Millan <rmh@gnu.org>
|
||||||
|
|
||||||
* util/grub.d/10_linux.in (list): Expand "vmlinu[zx]" instances to
|
* util/grub.d/10_linux.in (list): Expand "vmlinu[zx]" instances to
|
||||||
|
|
|
@ -406,21 +406,7 @@ grub_make_system_path_relative_to_its_root (const char *path)
|
||||||
|
|
||||||
/* buf is another filesystem; we found it. */
|
/* buf is another filesystem; we found it. */
|
||||||
if (st.st_dev != num)
|
if (st.st_dev != num)
|
||||||
{
|
break;
|
||||||
/* offset == 0 means path given is the mount point.
|
|
||||||
This works around special-casing of "/" in Un*x. This function never
|
|
||||||
prints trailing slashes (so that its output can be appended a slash
|
|
||||||
unconditionally). Each slash in is considered a preceding slash, and
|
|
||||||
therefore the root directory is an empty string. */
|
|
||||||
if (offset == 0)
|
|
||||||
{
|
|
||||||
free (buf);
|
|
||||||
free (buf2);
|
|
||||||
return xstrdup ("");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
offset = p - buf;
|
offset = p - buf;
|
||||||
/* offset == 1 means root directory. */
|
/* offset == 1 means root directory. */
|
||||||
|
@ -448,7 +434,10 @@ grub_make_system_path_relative_to_its_root (const char *path)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Remove trailing slashes, return empty string if root directory. */
|
/* This works around special-casing of "/" in Un*x. This function never
|
||||||
|
prints trailing slashes (so that its output can be appended a slash
|
||||||
|
unconditionally). Each slash in it is considered a preceding slash,
|
||||||
|
and therefore the root directory is an empty string. */
|
||||||
len = strlen (buf3);
|
len = strlen (buf3);
|
||||||
while (len > 0 && buf3[len - 1] == '/')
|
while (len > 0 && buf3[len - 1] == '/')
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue