diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index bb09e2815891..3562de50098e 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -501,9 +501,10 @@ static char **realloc_argv(unsigned int *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);