]> git.proxmox.com Git - grub2.git/commitdiff
* grub-core/kern/file.c (grub_file_open): Free file->name on failure.
authorVladimir Serbinenko <phcoder@gmail.com>
Mon, 18 Nov 2013 01:41:42 +0000 (02:41 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Mon, 18 Nov 2013 01:41:42 +0000 (02:41 +0100)
(grub_file_close): Free file->name.

ChangeLog
grub-core/kern/file.c

index beac10772fc84b158ed1bbe0464dc5050efdac3b..ea7f15c33bac82d295e6652eb11058e8e1a2b3c5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-11-18  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/kern/file.c (grub_file_open): Free file->name on failure.
+       (grub_file_close): Free file->name.
+
 2013-11-18  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/commands/verify.c (free_pk): Plug memory leak.
index ea1817a41bc81d6b1b140e89cd188f97d6db1c50..24da12bb99d12bbde0e2e4673e85ad78ce793558 100644 (file)
@@ -87,9 +87,6 @@ grub_file_open (const char *name)
   if (! file)
     goto fail;
 
-  file->name = grub_strdup (name);
-  grub_errno = GRUB_ERR_NONE;
-
   file->device = device;
 
   if (device->disk && file_name[0] != '/')
@@ -105,6 +102,9 @@ grub_file_open (const char *name)
   if ((file->fs->open) (file, file_name) != GRUB_ERR_NONE)
     goto fail;
 
+  file->name = grub_strdup (name);
+  grub_errno = GRUB_ERR_NONE;
+
   for (filter = 0; file && filter < ARRAY_SIZE (grub_file_filters_enabled);
        filter++)
     if (grub_file_filters_enabled[filter])
@@ -187,6 +187,7 @@ grub_file_close (grub_file_t file)
 
   if (file->device)
     grub_device_close (file->device);
+  grub_free (file->name);
   grub_free (file);
   return grub_errno;
 }