2004-09-01 16:21:03

by Dave Jones

[permalink] [raw]
Subject: [PATCH] Fix possible leak in fbcon code.

Spotted with the source checker from Coverity.com.

Signed-off-by: Dave Jones <[email protected]>


diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/video/console/fbcon.c linux-2.6/drivers/video/console/fbcon.c
--- bk-linus/drivers/video/console/fbcon.c 2004-08-24 00:02:40.000000000 +0100
+++ linux-2.6/drivers/video/console/fbcon.c 2004-09-01 13:31:12.000000000 +0100
@@ -983,6 +983,7 @@ static void fbcon_init(struct vc_data *v
vc->vc_y += logo_lines;
vc->vc_pos += logo_lines * vc->vc_size_row;
kfree(save);
+ save = NULL;
}
if (logo_lines > vc->vc_bottom) {
logo_shown = -1;
@@ -1004,6 +1005,8 @@ static void fbcon_init(struct vc_data *v
softback_top = 0;
}
}
+ if (save)
+ kfree(save);
}

static void fbcon_deinit(struct vc_data *vc)


2004-09-05 20:54:58

by Denis Vlasenko

[permalink] [raw]
Subject: Re: [PATCH] Fix possible leak in fbcon code.

On Wednesday 01 September 2004 18:51, Dave Jones wrote:
> Spotted with the source checker from Coverity.com.
>
> Signed-off-by: Dave Jones <[email protected]>
>
>
> diff -urpN --exclude-from=/home/davej/.exclude
> bk-linus/drivers/video/console/fbcon.c
> linux-2.6/drivers/video/console/fbcon.c ---
> bk-linus/drivers/video/console/fbcon.c 2004-08-24 00:02:40.000000000 +0100
> +++ linux-2.6/drivers/video/console/fbcon.c 2004-09-01 13:31:12.000000000
> +0100 @@ -983,6 +983,7 @@ static void fbcon_init(struct vc_data *v
> vc->vc_y += logo_lines;
> vc->vc_pos += logo_lines * vc->vc_size_row;
> kfree(save);
> + save = NULL;
> }
> if (logo_lines > vc->vc_bottom) {
> logo_shown = -1;
> @@ -1004,6 +1005,8 @@ static void fbcon_init(struct vc_data *v
> softback_top = 0;
> }
> }
> + if (save)
> + kfree(save);
> }
>
> static void fbcon_deinit(struct vc_data *vc)

kfree(NULL) is valid (it's a nop).
--
vda