All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sourav Poddar <sourav.poddar@ti.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: Marek Vasut <marex@denx.de>,
	linux-mtd@lists.infradead.org, stable@vger.kernel.org,
	Artem Bityutskiy <dedekind1@gmail.com>
Subject: Re: [PATCH 1/5] mtd: m25p80: fix allocation size
Date: Thu, 24 Oct 2013 14:30:50 +0530	[thread overview]
Message-ID: <5268E1C2.3030202@ti.com> (raw)
In-Reply-To: <1382583503-13748-1-git-send-email-computersforpeace@gmail.com>

On Thursday 24 October 2013 08:28 AM, Brian Norris wrote:
> This patch fixes two memory errors:
>
> 1. During a probe failure (in mtd_device_parse_register?) the command
>     buffer would not be freed.
>
> 2. The command buffer's size is determined based on the 'fast_read'
>     boolean, but the assignment of fast_read is made after this
>     allocation. Thus, the buffer may be allocated "too small".
>
> To fix the first, just switch to the devres version of kzalloc.
>
> To fix the second, increase MAX_CMD_SIZE unconditionally. It's not worth
> saving a byte to fiddle around with the conditions here.
>
> This problem was reported by Yuhang Wang a while back.
>
> Signed-off-by: Brian Norris<computersforpeace@gmail.com>
> Reported-by: Yuhang Wang<wangyuhang2014@gmail.com>
> Cc:<stable@vger.kernel.org>
Reviewed-by: Sourav Poddar <sourav.poddar@ti.com>
> ---
>   drivers/mtd/devices/m25p80.c | 20 +++++++-------------
>   1 file changed, 7 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
> index 8d6c87be..63a95ac 100644
> --- a/drivers/mtd/devices/m25p80.c
> +++ b/drivers/mtd/devices/m25p80.c
> @@ -78,7 +78,7 @@
>
>   /* Define max times to check status register before we give up. */
>   #define	MAX_READY_WAIT_JIFFIES	(40 * HZ)	/* M25P16 specs 40s max chip erase */
> -#define	MAX_CMD_SIZE		5
> +#define	MAX_CMD_SIZE		6
>
>   #define JEDEC_MFR(_jedec_id)	((_jedec_id)>>  16)
>
> @@ -996,15 +996,13 @@ static int m25p_probe(struct spi_device *spi)
>   		}
>   	}
>
> -	flash = kzalloc(sizeof *flash, GFP_KERNEL);
> +	flash = devm_kzalloc(&spi->dev, sizeof(*flash), GFP_KERNEL);
>   	if (!flash)
>   		return -ENOMEM;
> -	flash->command = kmalloc(MAX_CMD_SIZE + (flash->fast_read ? 1 : 0),
> -					GFP_KERNEL);
> -	if (!flash->command) {
> -		kfree(flash);
> +
> +	flash->command = devm_kzalloc(&spi->dev, MAX_CMD_SIZE, GFP_KERNEL);
> +	if (!flash->command)
>   		return -ENOMEM;
> -	}
>
>   	flash->spi = spi;
>   	mutex_init(&flash->lock);
> @@ -1137,14 +1135,10 @@ static int m25p_probe(struct spi_device *spi)
>   static int m25p_remove(struct spi_device *spi)
>   {
>   	struct m25p	*flash = spi_get_drvdata(spi);
> -	int		status;
>
>   	/* Clean up MTD stuff. */
> -	status = mtd_device_unregister(&flash->mtd);
> -	if (status == 0) {
> -		kfree(flash->command);
> -		kfree(flash);
> -	}
> +	mtd_device_unregister(&flash->mtd);
> +
>   	return 0;
>   }
>

  parent reply	other threads:[~2013-10-24  9:01 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-24  2:58 [PATCH 1/5] mtd: m25p80: fix allocation size Brian Norris
2013-10-24  2:58 ` [PATCH 2/5] mtd: m25p80: remove obsolete FIXME Brian Norris
2013-10-24  9:01   ` Sourav Poddar
2013-10-27 16:30   ` Marek Vasut
2013-10-24  2:58 ` [PATCH 3/5] mtd: m25p80: re-align ID entries Brian Norris
2013-10-24  9:01   ` Sourav Poddar
2013-10-24  2:58 ` [PATCH 4/5] mtd: m25p80: remove M25PXX_USE_FAST_READ Kconfig Brian Norris
2013-10-24  9:07   ` Sourav Poddar
2013-10-24  9:12     ` Sourav Poddar
2013-10-24 17:39       ` Brian Norris
2013-10-24 18:48         ` Sourav Poddar
2013-10-25 17:59   ` Brian Norris
2013-10-27 16:32   ` Marek Vasut
2013-10-30 23:38     ` Brian Norris
2013-10-31  9:21       ` Marek Vasut
2013-10-31  9:50         ` Sourav Poddar
2013-10-31 14:55         ` Brian Norris
2013-11-01 12:26           ` Marek Vasut
2013-11-05  3:37             ` Brian Norris
2013-11-05 13:14               ` Marek Vasut
2013-10-24  2:58 ` [PATCH 5/5] mtd: m25p80: remove 'disabled' device check Brian Norris
2013-10-24  2:58   ` Brian Norris
2013-10-24  9:01   ` Sourav Poddar
2013-10-24  9:01     ` Sourav Poddar
2013-10-25  0:15   ` Grant Likely
2013-10-25  0:15     ` Grant Likely
2013-10-25 18:01   ` Brian Norris
2013-10-25 18:01     ` Brian Norris
2013-10-24  9:00 ` Sourav Poddar [this message]
2013-10-24 17:17 ` [PATCH 1/5] mtd: m25p80: fix allocation size Brian Norris
2013-10-24 17:56   ` Sourav Poddar
2013-10-27 16:30 ` Marek Vasut
2013-10-27 22:48   ` Brian Norris
2013-10-28  7:54     ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5268E1C2.3030202@ti.com \
    --to=sourav.poddar@ti.com \
    --cc=computersforpeace@gmail.com \
    --cc=dedekind1@gmail.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=marex@denx.de \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.