From: linux@prisktech.co.nz (Tony Prisk)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] serial: vt8500: fix possible memory leak in vt8500_serial_probe()
Date: Mon, 08 Oct 2012 14:03:17 +1300 [thread overview]
Message-ID: <1349658197.19350.5.camel@gitbox> (raw)
In-Reply-To: <CAPgLHd9NrFCsp5NhjBJ4tYgY3-SfbTA-ps=rZgpmoywM6tX6KQ@mail.gmail.com>
On Mon, 2012-10-08 at 08:47 +0800, Wei Yongjun wrote:
> From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
>
> vt8500_port is malloced in vt8500_serial_probe() and should be freed
> before leaving from the error handling cases, otherwise it will
> cause memory leak.
>
> dpatch engine is used to auto generate this patch.
> (https://github.com/weiyj/dpatch)
>
> Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
> ---
> drivers/tty/serial/vt8500_serial.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/tty/serial/vt8500_serial.c b/drivers/tty/serial/vt8500_serial.c
> index 205d4cf..43fc369 100644
> --- a/drivers/tty/serial/vt8500_serial.c
> +++ b/drivers/tty/serial/vt8500_serial.c
> @@ -584,13 +584,16 @@ static int __devinit vt8500_serial_probe(struct platform_device *pdev)
> sizeof(vt8500_ports_in_use));
> }
>
> - if (port > VT8500_MAX_PORTS)
> - return -ENODEV;
> + if (port > VT8500_MAX_PORTS) {
> + ret = -ENODEV;
> + goto err;
> + }
>
> /* reserve the port id */
> if (test_and_set_bit(port, &vt8500_ports_in_use)) {
> /* port already in use - shouldn't really happen */
> - return -EBUSY;
> + ret = -EBUSY;
> + goto err;
> }
>
> vt8500_port->uart.type = PORT_VT8500;
>
You are correct - this is an error but wouldn't it be better to simply
move the allocation of vt8500_port after these test since it's not used
until later.
It would save two possible instances of having to alloc/release a block
of memory that is never used and possibly create unnecessary memory
fragmentation.
Either way, this patch fixes the problem, so you can add my Ack'd if my
suggestion is considered nit-picky.
Acked-by: Tony Prisk <linux@prisktech.co.nz>
Regards
Tony P
prev parent reply other threads:[~2012-10-08 1:03 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-08 0:47 [PATCH] serial: vt8500: fix possible memory leak in vt8500_serial_probe() Wei Yongjun
2012-10-08 1:03 ` Tony Prisk [this message]
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=1349658197.19350.5.camel@gitbox \
--to=linux@prisktech.co.nz \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).