diff --git a/ChangeLog b/ChangeLog index 893a21c06..7a184c0e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-28 Pavel Roskin + + * fs/hfs.c (grub_hfs_find_dir): Skip sequences of slashes, not + just one slash. That's how grub_fshelp_find_file() does it. + 2009-05-26 Pavel Roskin * genmk.rb: Avoid shadowing variable `s', rename the outer `s' diff --git a/fs/hfs.c b/fs/hfs.c index 056fce1fb..fe5d2694f 100644 --- a/fs/hfs.c +++ b/fs/hfs.c @@ -887,7 +887,8 @@ grub_hfs_find_dir (struct grub_hfs_data *data, const char *path, return grub_errno; path = origpath; - path++; + while (*path == '/') + path++; while (path && grub_strlen (path)) { @@ -901,8 +902,8 @@ grub_hfs_find_dir (struct grub_hfs_data *data, const char *path, next = grub_strchr (path, '/'); if (next) { - next[0] = '\0'; - next++; + while (*next == '/') + *(next++) = '\0'; } struct grub_hfs_catalog_key key;