[libGD] #239 [Task opened] Reachable memory leak in freetype calls.

[email protected] Thu, 30 Dec 2010 11:00:15 +0100 (CET)
Newsgroups php.gd.bugs
Message-ID <[email protected]>
THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.

A new Flyspray task has been opened.  Details are below. 

User who did this - Stone Cooper (stonewallcloudbuster) 

Attached to Project - libGD
Summary - Reachable memory leak in freetype calls.
Task Type - Bug Report
Category - Freetype
Status - Unconfirmed
Assigned To - 
Operating System - Linux
Severity - Low
Priority - Normal
Reported Version - 2.0.35
Due in Version - Undecided
Due Date - Undecided
Details - valgrind tools reports reachable memory leak from use of the gdImageStringFT:

==16670== HEAP SUMMARY:
==16670==     in use at exit: 30,296 bytes in 39 blocks
==16670==   total heap usage: 2,054 allocs, 2,015 frees, 3,887,200 bytes allocated
==16670== 
==16670== 32 bytes in 1 blocks are still reachable in loss record 1 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D7C0BC3D: FT_New_Memory (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BF3A: FT_Init_FreeType (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D8417C1C: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== 48 bytes in 1 blocks are still reachable in loss record 2 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D841794C: gdCacheCreate (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8417C3F: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== 96 bytes in 4 blocks are still reachable in loss record 3 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D7C0BF9F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C115D2: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C12295: FT_Add_Module (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BEFE: FT_Add_Default_Modules (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BF87: FT_Init_FreeType (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D8417C1C: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== 160 bytes in 1 blocks are still reachable in loss record 4 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D7C0BF9F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C115D2: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C120B2: FT_GlyphLoader_New (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C12252: FT_Add_Module (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BEFE: FT_Add_Default_Modules (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BF87: FT_Init_FreeType (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D8417C1C: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== 376 bytes in 1 blocks are still reachable in loss record 5 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D7C0BF9F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C115D2: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C1189F: FT_New_Library (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BF4A: FT_Init_FreeType (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D8417C1C: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== 960 bytes in 6 blocks are still reachable in loss record 6 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D7C0BF9F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C115D2: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C120B2: FT_GlyphLoader_New (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C121FD: FT_Add_Module (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BEFE: FT_Add_Default_Modules (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BF87: FT_Init_FreeType (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D8417C1C: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== 2,224 bytes in 20 blocks are still reachable in loss record 7 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D7C0BF9F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C115D2: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C121B1: FT_Add_Module (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BEFE: FT_Add_Default_Modules (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BF87: FT_Init_FreeType (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D8417C1C: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== 2,984 bytes in 1 blocks are still reachable in loss record 8 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D7C0BF9F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C115D2: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C47E31: ??? (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C122D5: FT_Add_Module (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BEFE: FT_Add_Default_Modules (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BF87: FT_Init_FreeType (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D8417C1C: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== 7,032 bytes in 3 blocks are still reachable in loss record 9 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D7C0BF9F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C115D2: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C485D9: ??? (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C122D5: FT_Add_Module (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BEFE: FT_Add_Default_Modules (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BF87: FT_Init_FreeType (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D8417C1C: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== 16,384 bytes in 1 blocks are still reachable in loss record 10 of 10
==16670==    at 0x4A05E1C: malloc (vg_replace_malloc.c:195)
==16670==    by 0x34D7C0BF9F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C115D2: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C118ED: FT_New_Library (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D7C0BF4A: FT_Init_FreeType (in /usr/lib64/libfreetype.so.6.3.10)
==16670==    by 0x34D8417C1C: gdFontCacheSetup (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D8419112: gdImageStringFTEx (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x34D84192EA: gdImageStringFT (in /usr/lib64/libgd.so.2.0.0)
==16670==    by 0x4013BF: drawBaseChart (pdi_chart.c:138)
==16670==    by 0x400ECA: main (main.c:28)
==16670== 
==16670== LEAK SUMMARY:
==16670==    definitely lost: 0 bytes in 0 blocks
==16670==    indirectly lost: 0 bytes in 0 blocks
==16670==      possibly lost: 0 bytes in 0 blocks
==16670==    still reachable: 30,296 bytes in 39 blocks
==16670==         suppressed: 0 bytes in 0 blocks

Have replicated this issue with example code from this web site.

More information can be found at the following URL:
http://bugs.libgd.org/?do=details&task_id=239

You are receiving this message because you have requested it from the Flyspray bugtracking system.  If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.