Re: [syzbot] [dm?] WARNING: zero-size vmalloc in cache_ctr
From: Edward Adam Davis
Date: Mon Nov 02 2026 - 02:20:29 EST
From: Edward Aadm Davis <eadavis@xxxxxxxx>
#syz test
diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c
index 1a5072425c4a..c405d30938f4 100644
--- a/drivers/md/dm-cache-target.c
+++ b/drivers/md/dm-cache-target.c
@@ -2455,6 +2455,12 @@ static int cache_create(struct cache_args *ca, struct cache **result)
ca->metadata_dev = ca->origin_dev = ca->cache_dev = NULL;
origin_blocks = cache->origin_sectors = ti->len;
+ if (cache->origin_sectors >> __ffs(DATA_DEV_BLOCK_SIZE_MAX_SECTORS) > 0) {
+ r = -EINVAL;
+ *error = "Origin sectors is too large";
+ goto bad;
+ }
+
origin_blocks = block_div(origin_blocks, ca->block_size);
cache->origin_blocks = to_oblock(origin_blocks);