If one memory allocation fails, there is a memory leak.
Signed-off-by: Christophe Jaillet <[email protected]>
---
drivers/s390/char/con3215.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c
index c43aca6..0fc3fe5 100644
--- a/drivers/s390/char/con3215.c
+++ b/drivers/s390/char/con3215.c
@@ -667,6 +667,8 @@ static struct raw3215_info *raw3215_alloc_info(void)
info->buffer = kzalloc(RAW3215_BUFFER_SIZE, GFP_KERNEL | GFP_DMA);
info->inbuf = kzalloc(RAW3215_INBUF_SIZE, GFP_KERNEL | GFP_DMA);
if (!info->buffer || !info->inbuf) {
+ kfree(info->inbuf);
+ kfree(info->buffer);
kfree(info);
return NULL;
}
--
2.1.0
On Sun, 19 Apr 2015 15:17:36 +0200
Christophe Jaillet <[email protected]> wrote:
> If one memory allocation fails, there is a memory leak.
>
> Signed-off-by: Christophe Jaillet <[email protected]>
> ---
> drivers/s390/char/con3215.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c
> index c43aca6..0fc3fe5 100644
> --- a/drivers/s390/char/con3215.c
> +++ b/drivers/s390/char/con3215.c
> @@ -667,6 +667,8 @@ static struct raw3215_info *raw3215_alloc_info(void)
> info->buffer = kzalloc(RAW3215_BUFFER_SIZE, GFP_KERNEL | GFP_DMA);
> info->inbuf = kzalloc(RAW3215_INBUF_SIZE, GFP_KERNEL | GFP_DMA);
> if (!info->buffer || !info->inbuf) {
> + kfree(info->inbuf);
> + kfree(info->buffer);
> kfree(info);
> return NULL;
> }
Applied, thanks.
--
blue skies,
Martin.
"Reality continues to ruin my life." - Calvin.