dm flakey: check for null arg_name in parse_features()
authorGoldwyn Rodrigues <rgoldwyn@suse.com>
Mon, 4 Dec 2017 03:14:12 +0000 (21:14 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 Apr 2020 05:59:05 +0000 (07:59 +0200)
[ Upstream commit 7690e25302dc7d0cd42b349e746fe44b44a94f2b ]

One can crash dm-flakey by specifying more feature arguments than the
number of features supplied.  Checking for null in arg_name avoids
this.

dmsetup create flakey-test --table "0 66076080 flakey /dev/sdb9 0 0 180 2 drop_writes"

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/md/dm-flakey.c

index 742c1fa870dae4369bf304f8bdd4d3e71fa470e5..36a98f4db0564f9a9047b15d46c531ba9fe44248 100644 (file)
@@ -69,6 +69,11 @@ static int parse_features(struct dm_arg_set *as, struct flakey_c *fc,
                arg_name = dm_shift_arg(as);
                argc--;
 
+               if (!arg_name) {
+                       ti->error = "Insufficient feature arguments";
+                       return -EINVAL;
+               }
+
                /*
                 * drop_writes
                 */