lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1247493898.14968.0.camel@penberg-laptop>
Date:	Mon, 13 Jul 2009 17:04:58 +0300
From:	Pekka Enberg <penberg@...helsinki.fi>
To:	Catalin Marinas <catalin.marinas@....com>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] Fix vc_screenbuf leak via con_init()

On Mon, 2009-07-13 at 14:12 +0100, Catalin Marinas wrote:
> Commit a5f4f52e replaced the alloc_bootmem() with kzalloc() but didn't
> set vc_kmalloced to 1 and the memory block is later leaked. The
> corresponding kmemleak trace:
> 
> unreferenced object 0xdf828000 (size 8192):
>   comm "swapper", pid 0, jiffies 4294937296
>   backtrace:
>     [<c006d473>] __save_stack_trace+0x17/0x1c
>     [<c000d869>] log_early+0x55/0x84
>     [<c01cfa4b>] kmemleak_alloc+0x33/0x3c
>     [<c006c013>] __kmalloc+0xd7/0xe4
>     [<c00108c7>] con_init+0xbf/0x1b8
>     [<c0010149>] console_init+0x11/0x20
>     [<c0008797>] start_kernel+0x137/0x1e4
> 
> Signed-off-by: Catalin Marinas <catalin.marinas@....com>
> Cc: Pekka Enberg <penberg@...helsinki.fi>

Reviewed-by: Pekka Enberg <penberg@...helsinki.fi>

> ---
> 
> (note that detecting this requires additional kmemleak patches for early
> log stack traces which are planned for the next merging window)
> 
>  drivers/char/vt.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/char/vt.c b/drivers/char/vt.c
> index 7947bd1..f6ac4c2 100644
> --- a/drivers/char/vt.c
> +++ b/drivers/char/vt.c
> @@ -2881,7 +2881,7 @@ static int __init con_init(void)
>  		INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
>  		visual_init(vc, currcons, 1);
>  		vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_NOWAIT);
> -		vc->vc_kmalloced = 0;
> +		vc->vc_kmalloced = 1;
>  		vc_init(vc, vc->vc_rows, vc->vc_cols,
>  			currcons || !vc->vc_sw->con_save_screen);
>  	}
> 

We can probably get rid of ->vc_kmalloced completely now that the
bootmem allocator is no longer used by the driver.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ