Skip to content

Commit

Permalink
mtd: check parts pointer before using it
Browse files Browse the repository at this point in the history
The code has the check for parts but it called after kmemdup,
kmemdup(parts, sizeof(*parts) * nr_parts,...)
if (!parts)
	return -ENOMEM

In fact, we need check parts before safely using it.
and we also need check the real_parts to make sure kmemdup
allocation sucessfully.

Signed-off-by: Jason Liu <jason.hui@linaro.org>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
  • Loading branch information
Jason Liu authored and Artem Bityutskiy committed Sep 11, 2011
1 parent e2e24e8 commit 4d523b6
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions drivers/mtd/mtdcore.c
Original file line number Diff line number Diff line change
Expand Up @@ -465,12 +465,13 @@ int mtd_device_parse_register(struct mtd_info *mtd, const char **types,
struct mtd_partition *real_parts;

err = parse_mtd_partitions(mtd, types, &real_parts, parser_data);
if (err <= 0 && nr_parts) {
if (err <= 0 && nr_parts && parts) {
real_parts = kmemdup(parts, sizeof(*parts) * nr_parts,
GFP_KERNEL);
err = nr_parts;
if (!parts)
if (!real_parts)
err = -ENOMEM;
else
err = nr_parts;
}

if (err > 0) {
Expand Down

0 comments on commit 4d523b6

Please sign in to comment.