Skip to contentSkip to conversation

dm zoned: Potential NULL dereference in dmz_do_reclaim()

PATCH In review Dan Carpenter 2 participants 2 messages Aug 19, 2019

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 dm zoned: Potential NULL dereference in dmz_do_reclaim()

This function is supposed to return error pointers so it matches the dmz_get_rnd_zone_for_reclaim() function. The current code could lead to a NULL dereference in dmz_do_reclaim()

Fixes b234c6d7a703 ("dm zoned: improve error handling in reclaim")
---
 drivers/md/dm-zoned-metadata.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/md/dm-zoned-metadata.c +2 -2
index 2a5bc51fd6d5..595a73110e17 100644
@@ -1588,7 +1588,7 @@ static struct dm_zone *dmz_get_seq_zone_for_reclaim(struct dmz_metadata *zmd)
 	struct dm_zone *zone;
 
 	if (list_empty(&zmd->map_seq_list))
-		return NULL;
+		return ERR_PTR(-EBUSY);
 
 	list_for_each_entry(zone, &zmd->map_seq_list, link) {
 		if (!zone->bzone)
@@ -1597,7 +1597,7 @@ static struct dm_zone *dmz_get_seq_zone_for_reclaim(struct dmz_metadata *zmd)
 			return zone;
 	}
 
-	return NULL;
+	return ERR_PTR(-EBUSY);
 }
 
 /*
Signature · 1 line
2.20.1
Reviewed-by on v1 1/1
#1 lore raw

Dan,

Quoted 24 lines · Dan Carpenter

This function is supposed to return error pointers so it matches the dmz_get_rnd_zone_for_reclaim() function. The current code could lead to a NULL dereference in dmz_do_reclaim()

Fixes b234c6d7a703 ("dm zoned: improve error handling in reclaim")
---
 drivers/md/dm-zoned-metadata.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/md/dm-zoned-metadata.c +1 -1
index 2a5bc51fd6d5..595a73110e17 100644
@@ -1588,7 +1588,7 @@ static struct dm_zone *dmz_get_seq_zone_for_reclaim(struct dmz_metadata *zmd)
 	struct dm_zone *zone;
 
 	if (list_empty(&zmd->map_seq_list))
-		return NULL;
+		return ERR_PTR(-EBUSY);
 
 	list_for_each_entry(zone, &zmd->map_seq_list, link) {
 		if (!zone->bzone)

drivers/md/dm-zoned-metadata.c static struct dm_zone *dmz_get_seq_zone_for_reclaim(struct dmz_metadata *zmd) · line 1603

Quoted 8 lines
drivers/md/dm-zoned-metadata.c +1 -1
@@ -1597,7 +1597,7 @@ static struct dm_zone *dmz_get_seq_zone_for_reclaim(struct dmz_metadata *zmd)
 			return zone;
 	}
 
-	return NULL;
+	return ERR_PTR(-EBUSY);
 }
 
 /*

thanks for noticing this -