bug-ncurses
[Top][All Lists]
Advanced

[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)


587c587,589
<       set_curterm(termp);
---
      TERMINAL *oldterm = set_curterm(termp);
     del_curterm(oldterm);

------------------


Specifically:

Current chunk:

<       set_curterm(termp);

Suggested Fix:

      TERMINAL *oldterm = set_curterm(termp);
     del_curterm(oldterm);
-----------------

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

Thx!



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
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)








reply via email to

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