]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
commands/legacycfg: Avoid closing file twice
authorLeo Sandoval <lsandova@redhat.com>
Wed, 16 Oct 2024 17:54:38 +0000 (11:54 -0600)
committerDaniel Kiper <daniel.kiper@oracle.com>
Thu, 31 Oct 2024 15:08:36 +0000 (16:08 +0100)
An internal (at Red Hat) static soure code scan detected an
use-after-free scenario:

  Error: USE_AFTER_FREE (CWE-416):
  grub-2.06/grub-core/commands/legacycfg.c:194: freed_arg: "grub_file_close" frees "file".
  grub-2.06/grub-core/commands/legacycfg.c:201: deref_arg: Calling "grub_file_close" dereferences freed pointer "file".
  #  199|         if (!args)
  #  200|    {
  #  201|->    grub_file_close (file);
  #  202|      grub_free (suffix);
  #  203|      grub_free (entrysrc);

So, remove the extra file close call.

Signed-off-by: Leo Sandoval <lsandova@redhat.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/commands/legacycfg.c

index e9e9d94eff5c172a64d3461c59e2e578b5e1be88..3bf9fe2e4dc2cc3eb7d5e43d51ef3afb6515e85f 100644 (file)
@@ -198,7 +198,6 @@ legacy_file (const char *filename)
       const char **args = grub_malloc (sizeof (args[0]));
       if (!args)
        {
-         grub_file_close (file);
          grub_free (suffix);
          grub_free (entrysrc);
          return grub_errno;