]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/fs/fshelp.c (find_file): Save ctx->next when calling
authorVladimir Serbinenko <phcoder@gmail.com>
Sat, 2 Nov 2013 19:29:02 +0000 (20:29 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Sat, 2 Nov 2013 19:29:02 +0000 (20:29 +0100)
find_file recursively for symlink.

ChangeLog
grub-core/fs/fshelp.c

index 12ee155b8144b35988d77cffa2ef63bd7fdce912..e2eb822e6bc1c84e8724f3781e150644726835cb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-11-02  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/fs/fshelp.c (find_file): Save ctx->next when calling
+       find_file recursively for symlink.
+
 2013-11-02  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * tests/util/grub-shell.in: Copy themes.
index c6f3fe1dfaa8e6d937ef6dacee34860716840bfd..42bd542bbc3525cedf3ccdc090e2e351b8375572 100644 (file)
@@ -133,6 +133,7 @@ find_file (const char *currpath, grub_fshelp_node_t currroot,
       if (ctx->type == GRUB_FSHELP_SYMLINK)
        {
          char *symlink;
+         const char *next;
 
          /* Test if the symlink does not loop.  */
          if (++ctx->symlinknest == 8)
@@ -164,8 +165,10 @@ find_file (const char *currpath, grub_fshelp_node_t currroot,
            }
 
          /* Lookup the node the symlink points to.  */
+         next = ctx->next;
          find_file (symlink, ctx->oldnode, &ctx->currnode,
                     iterate_dir, read_symlink, ctx);
+         ctx->next = next;
          ctx->type = ctx->foundtype;
          grub_free (symlink);