[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: setupterm memory leak

From: Usamah Malik
Subject: Re: setupterm memory leak
Date: Mon, 11 May 2009 21:33:36 -0000
User-agent: Opera Mail/9.64 (Linux)

<       set_curterm(termp);
      TERMINAL *oldterm = set_curterm(termp);



Current chunk:

<       set_curterm(termp);

Suggested Fix:

      TERMINAL *oldterm = set_curterm(termp);

Sorry... the diff was reversed. Does it make sense now?


On Sat, 09 May 2009 23:19:36 -0000, Thomas Dickey <address@hidden> wrote:

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
<       TERMINAL *oldterm = set_curterm(termp);
<       del_curterm(oldterm);

this chunk doesn't appear in ncurses...


this chunk does...

(but your diff suggests that the first chunk is in ncurses, and that
you want to use the second)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]