lkml.org 
[lkml]   [2015]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5/6] mtd: docg3: Fix kasprintf() usage
    Date
    kasprintf() does a dynamic memory allocation and can fail.
    We have to handle that case.

    Signed-off-by: Richard Weinberger <richard@nod.at>
    ---
    drivers/mtd/devices/docg3.c | 10 ++++++++--
    1 file changed, 8 insertions(+), 2 deletions(-)

    diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
    index 486936b..5e67b4a 100644
    --- a/drivers/mtd/devices/docg3.c
    +++ b/drivers/mtd/devices/docg3.c
    @@ -1815,7 +1815,7 @@ static void doc_dbg_unregister(struct docg3 *docg3)
    * @chip_id: The chip ID of the supported chip
    * @mtd: The structure to fill
    */
    -static void __init doc_set_driver_info(int chip_id, struct mtd_info *mtd)
    +static int __init doc_set_driver_info(int chip_id, struct mtd_info *mtd)
    {
    struct docg3 *docg3 = mtd->priv;
    int cfg;
    @@ -1828,6 +1828,8 @@ static void __init doc_set_driver_info(int chip_id, struct mtd_info *mtd)
    case DOC_CHIPID_G3:
    mtd->name = kasprintf(GFP_KERNEL, "docg3.%d",
    docg3->device_id);
    + if (!mtd->name)
    + return -ENOMEM;
    docg3->max_block = 2047;
    break;
    }
    @@ -1850,6 +1852,8 @@ static void __init doc_set_driver_info(int chip_id, struct mtd_info *mtd)
    mtd->_block_isbad = doc_block_isbad;
    mtd->ecclayout = &docg3_oobinfo;
    mtd->ecc_strength = DOC_ECC_BCH_T;
    +
    + return 0;
    }

    /**
    @@ -1913,7 +1917,9 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
    goto nomem4;
    }

    - doc_set_driver_info(chip_id, mtd);
    + ret = doc_set_driver_info(chip_id, mtd);
    + if (ret)
    + goto nomem4;

    doc_hamming_ecc_init(docg3, DOC_LAYOUT_OOB_PAGEINFO_SZ);
    doc_reload_bbt(docg3);
    --
    1.8.4.5


    \
     
     \ /
      Last update: 2015-06-01 23:21    [W:3.811 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site