]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
fs/btrfs: Fix memory leaks
authorLidong Chen <lidong.chen@oracle.com>
Thu, 27 Mar 2025 17:56:34 +0000 (17:56 +0000)
committerDaniel Kiper <daniel.kiper@oracle.com>
Fri, 4 Apr 2025 17:35:51 +0000 (19:35 +0200)
Fix memory leaks in grub_btrfs_extent_read() and grub_btrfs_dir().

Fixes: CID 473842
Fixes: CID 473871
Signed-off-by: Lidong Chen <lidong.chen@oracle.com>
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/fs/btrfs.c

index 9c1e925c92e75be214767c419b06a4bc7679c546..7bf8d922f6146e16d7a1429d5b6573dc8942d133 100644 (file)
@@ -1538,7 +1538,10 @@ grub_btrfs_extent_read (struct grub_btrfs_data *data,
          err = lower_bound (data, &key_in, &key_out, tree,
                             &elemaddr, &elemsize, &desc, 0);
          if (err)
-           return -1;
+           {
+             grub_free (desc.data);
+             return -1;
+           }
          if (key_out.object_id != ino
              || key_out.type != GRUB_BTRFS_ITEM_TYPE_EXTENT_ITEM)
            {
@@ -2115,6 +2118,7 @@ grub_btrfs_dir (grub_device_t device, const char *path,
   if (err)
     {
       grub_btrfs_unmount (data);
+      grub_free (desc.data);
       return err;
     }
   if (key_out.type != GRUB_BTRFS_ITEM_TYPE_DIR_ITEM