btrfs-progs/0005-btrfs-progs-fix-freeing-of-device-after-error-in-btr.patch
liuh d48317bc80 btrfs-progs: fix freeing of device after error in btrfs_add_to_fsid()
(cherry picked from commit 1fcf9043d30812893e075e2b3c6ec5a093fd9629)
2024-06-22 14:43:56 +08:00

43 lines
1.2 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 27198a4c26f10f8cef222b6d3be4d1509ab055cb Mon Sep 17 00:00:00 2001
From: David Sterba <dsterba@suse.com>
Date: Wed, 3 Apr 2024 23:10:22 +0200
Subject: [PATCH] btrfs-progs: fix freeing of device after error in
btrfs_add_to_fsid()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reported by 'gcc -fanalyzer':
common/device-scan.c:222:20: warning: dereference of NULL device [CWE-476] [-Wanalyzer-null-dereference]
If the allocation of device fails then we can't free device->zone_info
at the out label. To fix that return immediately as it's at the
beginning of the function.
Signed-off-by: David Sterba <dsterba@suse.com>
---
common/device-scan.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/common/device-scan.c b/common/device-scan.c
index c1cd726..630220a 100644
--- a/common/device-scan.c
+++ b/common/device-scan.c
@@ -144,10 +144,9 @@ int btrfs_add_to_fsid(struct btrfs_trans_handle *trans,
device_total_bytes = (device_total_bytes / sectorsize) * sectorsize;
device = calloc(1, sizeof(*device));
- if (!device) {
- ret = -ENOMEM;
- goto out;
- }
+ if (!device)
+ return -ENOMEM;
+
buf = calloc(1, sectorsize);
if (!buf) {
ret = -ENOMEM;
--
2.27.0