btrfs-progs: fix freeing of device after error in btrfs_add_to_fsid()

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>
This commit is contained in:
David Sterba 2024-04-03 23:10:22 +02:00
parent cfbbd48150
commit 27198a4c26

View File

@ -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;