lkml.org 
[lkml]   [2011]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[[PATCH v2] mtd: check parts pointer before using it
    Date
    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>
    Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
    Cc: Artem Bityutskiy <artem.bityutskiy@intel.com>
    ---
    V2: Fix one error condition check and add real_parts check too.
    ---
    This patch is based on git://git.infradead.org/users/dedekind/l2-mtd-2.6.git
    ---
    drivers/mtd/mtdcore.c | 7 ++++---
    1 files changed, 4 insertions(+), 3 deletions(-)

    diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
    index 09bdbac..b01993e 100644
    --- a/drivers/mtd/mtdcore.c
    +++ b/drivers/mtd/mtdcore.c
    @@ -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) {
    --
    1.7.4.1



    \
     
     \ /
      Last update: 2011-08-24 13:27    [W:3.723 / U:0.344 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site