From: Stefan Agner Date: Thu, 06 Dec 2018 13:13:19 +0100 Subject: [U-Boot] [PATCH] nand: vybrid: Use calloc() instead of malloc() to allocate struct nfc In-Reply-To: <20181203092047.2280-1-lukma@denx.de> References: <20181203092047.2280-1-lukma@denx.de> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 03.12.2018 10:20, Lukasz Majewski wrote: > Without this change it is possible that Vybrid's NFC driver malloc() call > will obtain some memory used (and correctly free'd) by some previous > driver (in this case pinctrl for Vybrid). > > As a result some fields of struct nfc - in out case mtd->_get_device - are > "pre initialized" with some random values. > > On the latter stage of booting, when e.g. somebody calls 'mtdparts default' > the "data abort" is observed when __get_mtd_device() function is called. > > The mtd->_get_device pointer is not NULL and wrong value is referenced. > > Signed-off-by: Lukasz Majewski Looks good: Reviewed-by: Stefan Agner -- Stefan > > --- > > drivers/mtd/nand/raw/vf610_nfc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mtd/nand/raw/vf610_nfc.c b/drivers/mtd/nand/raw/vf610_nfc.c > index fce7e5f299..3326c2b096 100644 > --- a/drivers/mtd/nand/raw/vf610_nfc.c > +++ b/drivers/mtd/nand/raw/vf610_nfc.c > @@ -646,7 +646,7 @@ static int vf610_nfc_nand_init(int devnum, void > __iomem *addr) > .flash_bbt = 1, > }; > > - nfc = malloc(sizeof(*nfc)); > + nfc = calloc(1, sizeof(*nfc)); > if (!nfc) { > printf(KERN_ERR "%s: Memory exhausted!\n", __func__); > return -ENOMEM;