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