diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index 52083d397fc4..b7f940e8b7ff 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -492,9 +492,10 @@ static char **realloc_argv(unsigned *size, char **old_argv) gfp = GFP_NOIO; } argv = kmalloc_array(new_size, sizeof(*argv), gfp); - if (argv && old_argv) { - memcpy(argv, old_argv, *size * sizeof(*argv)); + if (argv) { *size = new_size; + if (old_argv) + memcpy(argv, old_argv, *size * sizeof(*argv)); } kfree(old_argv);