I can't figure out when this memory is leaked:

==8482== 21 bytes in 1 blocks are definitely lost in loss record 155 of 536
==8482==    at 0x483877F: malloc (in 
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==8482==    by 0x5FE76A7: __vasprintf_internal (vasprintf.c:71)
==8482==    by 0x1AC2A6: xvasprintf (safemalloc.c:104)
==8482==    by 0x1AC36A: xasprintf (safemalloc.c:93)
==8482==    by 0x1A5990: translit_csname (Ficonv.c:93)
==8482==    by 0x1A5DB8: set_iconv_charset_index (Ficonv.c:203)
==8482==    by 0x1A5DB8: FiconvSetupConversion (Ficonv.c:437)
==8482==    by 0x1A6134: FiconvCharsetToUtf8 (Ficonv.c:548)
==8482==    by 0x18F10E: FlocaleEncodeString (Flocale.c:464)
==8482==    by 0x19086D: FlocaleTextWidth (Flocale.c:2192)
==8482==    by 0x13E299: resize_geometry_window (move_resize.c:1123)
==8482==    by 0x158DD6: main (fvwm3.c:2543)

The memory is allocated through Ficonv.c:203:
        FLC_SET_ICONV_TRANSLIT_CHARSET(
                fc, fxstrdup(
                        translit_csname(
                                FLC_GET_LOCALE_CHARSET(
                                        fc,i))));

This stores it in fc->translit_csname.  I've no idea where it's
lost.  I'd assume that charsets are not ever freed or lost.

--

Two more leaks that need to be checked:

==8482== 38 (16 direct, 22 indirect) bytes in 1 blocks are definitely lost in 
loss record 184 of 536
==8482==    at 0x48386AF: malloc (in 
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==8482==    by 0x483ADE7: realloc (in 
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==8482==    by 0x4CE950B: XCreateFontSet (in 
/usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==8482==    by 0x18EB64: FlocaleGetFontSet (Flocale.c:1152)
==8482==    by 0x18FD81: FlocaleGetFontOrFontSet (Flocale.c:1302)
==8482==    by 0x18FD81: FlocaleLoadFont (Flocale.c:1479)
==8482==    by 0x14A314: CMD_DefaultFont (builtins.c:3160)
==8482==    by 0x1740B4: __execute_command_line (functions.c:669)
==8482==    by 0x174CBA: execute_function (functions.c:1240)
==8482==    by 0x18B3F2: run_command_stream (read.c:148)
==8482==    by 0x18B53B: run_command_file (read.c:256)
==8482==    by 0x15903F: main (fvwm3.c:2494)
==8482==
==8482== 38 (16 direct, 22 indirect) bytes in 1 blocks are definitely lost in 
loss record 185 of 536
==8482==    at 0x48386AF: malloc (in 
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==8482==    by 0x483ADE7: realloc (in 
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==8482==    by 0x4CE950B: XCreateFontSet (in 
/usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==8482==    by 0x18EB64: FlocaleGetFontSet (Flocale.c:1152)
==8482==    by 0x18FD81: FlocaleGetFontOrFontSet (Flocale.c:1302)
==8482==    by 0x18FD81: FlocaleLoadFont (Flocale.c:1479)
==8482==    by 0x14C721: setup_icon_font (add_window.c:1946)
==8482==    by 0x14E89F: AddWindow (add_window.c:2414)
==8482==    by 0x13698C: HandleMapRequestKeepRaised (events.c:3068)
==8482==    by 0x136DC3: HandleMapRequest (events.c:3005)
==8482==    by 0x138D50: dispatch_event (events.c:4186)
==8482==    by 0x139B1C: HandleEvents (events.c:4232)
==8482==    by 0x158DE5: main (fvwm3.c:2547)


Ciao

Dominik ^_^  ^_^

--

Dominik Vogt

Reply via email to