[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: setupterm memory leak
From: |
Thomas Dickey |
Subject: |
Re: setupterm memory leak |
Date: |
Sat, 09 May 2009 19:19:36 -0400 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Thu, May 07, 2009 at 09:08:42PM -0000, Usamah Malik wrote:
>
> We'd been finding memory leaks (via valgrind) in ncurses. This happens
> when ncurses is being used from tecla library. The stack is below:
>
> ==5125== 46,254 (2,236 direct, 44,018 indirect) bytes in 13 blocks are
> definitely lost in loss record 43 of 45
> ==5125== at 0x400497E: calloc (vg_replace_malloc.c:397)
> ==5125== by 0x5386C86: _nc_setupterm (in /usr/lib/libncurses.so.5.7)
> ==5125== by 0x53871E2: setupterm (in /usr/lib/libncurses.so.5.7)
> ==5125== by 0x825596E: _gl_change_terminal (in .........)
>
> ncurse version: 5.7
> platform: linux x86
>
>
> On deeper analysis of setupterm we found a global variable being assigned
> chunks of memory at every setupterm call. Applying the following diff to
> lib_setup.c seems to fix it:
>
> -------
> diff ./ncurses/tinfo/lib_setup_old.c ./ncurses/tinfo/lib_setup.c
> 587,589c587
> < TERMINAL *oldterm = set_curterm(termp);
> <
> < del_curterm(oldterm);
this chunk doesn't appear in ncurses...
> ---
>> set_curterm(termp);
this chunk does...
(but your diff suggests that the first chunk is in ncurses, and that
you want to use the second)
--
Thomas E. Dickey <address@hidden>
http://invisible-island.net
ftp://invisible-island.net
signature.asc
Description: Digital signature