mtd: nandsim: Fix kasprintf() usage

kasprintf() used in get_partition_name() does a dynamic
memory allocation and can fail. We have to handle that case.

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
This commit is contained in:
Richard Weinberger 2015-06-01 23:10:50 +02:00 committed by Brian Norris
parent bc349da0a6
commit 641c7925b6
1 changed files with 10 additions and 0 deletions

View File

@ -743,6 +743,11 @@ static int init_nandsim(struct mtd_info *mtd)
goto error; goto error;
} }
ns->partitions[i].name = get_partition_name(i); ns->partitions[i].name = get_partition_name(i);
if (!ns->partitions[i].name) {
NS_ERR("unable to allocate memory.\n");
ret = -ENOMEM;
goto error;
}
ns->partitions[i].offset = next_offset; ns->partitions[i].offset = next_offset;
ns->partitions[i].size = part_sz; ns->partitions[i].size = part_sz;
next_offset += ns->partitions[i].size; next_offset += ns->partitions[i].size;
@ -756,6 +761,11 @@ static int init_nandsim(struct mtd_info *mtd)
goto error; goto error;
} }
ns->partitions[i].name = get_partition_name(i); ns->partitions[i].name = get_partition_name(i);
if (!ns->partitions[i].name) {
NS_ERR("unable to allocate memory.\n");
ret = -ENOMEM;
goto error;
}
ns->partitions[i].offset = next_offset; ns->partitions[i].offset = next_offset;
ns->partitions[i].size = remains; ns->partitions[i].size = remains;
ns->nbparts += 1; ns->nbparts += 1;