]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2010-02-06 Vladimir Serbinenko <phcoder@gmail.com>
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 6 Feb 2010 19:52:11 +0000 (20:52 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 6 Feb 2010 19:52:11 +0000 (20:52 +0100)
* commands/ls.c (grub_ls_list_files): Free pathname on exit.

ChangeLog
commands/ls.c

index b9dfd7e7340c3d9bff7e2baff99cf50e8749c2de..e60191a7d3ec23f00b47ca0323730eb78c71ae92 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * commands/ls.c (grub_ls_list_files): Free pathname on exit.
+
 2010-02-06  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * fs/fat.c (grub_fat_iterate_dir): Free unibuf at exit.
index 8a8319ac80ae4c97039dfa84171fb93d523f4f01..eb10496178898a6fb103a760c0f71166f1a88c9b 100644 (file)
@@ -87,14 +87,13 @@ grub_ls_list_files (char *dirname, int longlist, int all, int human)
   int print_files_long (const char *filename,
                        const struct grub_dirhook_info *info)
     {
-      char *pathname;
-
       if ((! all) && (filename[0] == '.'))
        return 0;
 
       if (! info->dir)
        {
          grub_file_t file;
+         char *pathname;
 
          if (dirname[grub_strlen (dirname) - 1] == '/')
            pathname = grub_xasprintf ("%s%s", dirname, filename);
@@ -110,6 +109,7 @@ grub_ls_list_files (char *dirname, int longlist, int all, int human)
          if (! file)
            {
              grub_errno = 0;
+             grub_free (pathname);
              return 0;
            }
 
@@ -144,6 +144,7 @@ grub_ls_list_files (char *dirname, int longlist, int all, int human)
 
            }
          grub_file_close (file);
+         grub_free (pathname);
        }
       else
        grub_printf ("%-12s", "DIR");