]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
md: dm-zoned-target: Initialize return variable r to avoid uninitialized use
authorPurva Yeshi <purvayeshi550@gmail.com>
Thu, 10 Jul 2025 07:41:57 +0000 (13:11 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:22:46 +0000 (16:22 +0200)
[ Upstream commit 487767bff572d46f7c37ad846c4078f6d6c9cc55 ]

Fix Smatch-detected error:
drivers/md/dm-zoned-target.c:1073 dmz_iterate_devices()
error: uninitialized symbol 'r'.

Smatch detects a possible use of the uninitialized variable 'r' in
dmz_iterate_devices() because if dmz->nr_ddevs is zero, the loop is
skipped and 'r' is returned without being set, leading to undefined
behavior.

Initialize 'r' to 0 before the loop. This ensures that if there are no
devices to iterate over, the function still returns a defined value.

Signed-off-by: Purva Yeshi <purvayeshi550@gmail.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/md/dm-zoned-target.c

index 48fc723f1ac81c1aec0e875f773dac48a8ec16aa..e5f61a9080e4c16d31e242651d7e3d8e7c81149b 100644 (file)
@@ -1066,7 +1066,7 @@ static int dmz_iterate_devices(struct dm_target *ti,
        struct dmz_target *dmz = ti->private;
        unsigned int zone_nr_sectors = dmz_zone_nr_sectors(dmz->metadata);
        sector_t capacity;
-       int i, r;
+       int i, r = 0;
 
        for (i = 0; i < dmz->nr_ddevs; i++) {
                capacity = dmz->dev[i].capacity & ~(zone_nr_sectors - 1);