View Issue Details

IDProjectCategoryView StatusLast Update
0002537FSSCPPlatform-Engine interactionpublic2015-05-03 03:19
ReporterEchelon9 Assigned ToEchelon9  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionno change required 
Product Version3.6.14 RC1 
Fixed in Version3.7.2 
Summary0002537: Valgrind: Memory leak - anim_load()
DescriptionValgrind reports ~19MB of still reachable memory, which was originally allocated with this section of the animation code:

ptr->data = (ubyte *) vm_malloc(count);

anim_load(char*, int, int) (animplay.cpp:791)
Additional Information==43692== 5,025,168 bytes in 6 blocks are still reachable in loss record 5,541 of 5,542
==43692== at 0x1EC94C5: malloc (vg_replace_malloc.c:266)
==43692== by 0x29C05: _vm_malloc(int, char*, int, int) (stubs.cpp:563)
==43692== by 0xCFD92: anim_load(char*, int, int) (animplay.cpp:791)
==43692== by 0x4552DB: generic_anim_stream(generic_anim*) (generic.cpp:177)
==43692== by 0x1DFD99: main_hall_init(int) (mainhallmenu.cpp:599)
==43692== by 0x6BAF4: game_enter_state(int, int) (freespace.cpp:5932)
==43692== by 0x116C35: gameseq_set_state(int, int) (gamesequence.cpp:282)
==43692== by 0x6CE54: game_process_event(int, int) (freespace.cpp:5125)
==43692== by 0x117195: gameseq_process_events() (gamesequence.cpp:397)
==43692== by 0x6B564: game_main(char*) (freespace.cpp:7084)
==43692== by 0x6B717: SDL_main (freespace.cpp:7218)
==43692== by 0x3D235: -[SDLMain applicationDidFinishLaunching:] (SDLMain.m:300)
==43692==
==43692== 14,146,552 bytes in 3 blocks are still reachable in loss record 5,542 of 5,542
==43692== at 0x1EC94C5: malloc (vg_replace_malloc.c:266)
==43692== by 0x29C05: _vm_malloc(int, char*, int, int) (stubs.cpp:563)
==43692== by 0xCFD92: anim_load(char*, int, int) (animplay.cpp:791)
==43692== by 0x4552DB: generic_anim_stream(generic_anim*) (generic.cpp:177)
==43692== by 0x1DFC51: main_hall_init(int) (mainhallmenu.cpp:579)
==43692== by 0x6BAF4: game_enter_state(int, int) (freespace.cpp:5932)
==43692== by 0x116C35: gameseq_set_state(int, int) (gamesequence.cpp:282)
==43692== by 0x6CE54: game_process_event(int, int) (freespace.cpp:5125)
==43692== by 0x117195: gameseq_process_events() (gamesequence.cpp:397)
==43692== by 0x6B564: game_main(char*) (freespace.cpp:7084)
==43692== by 0x6B717: SDL_main (freespace.cpp:7218)
==43692== by 0x3D235: -[SDLMain applicationDidFinishLaunching:] (SDLMain.m:300)
TagsNo tags attached.

Activities

Goober5000

2012-02-09 07:03

administrator   ~0013267

Any progress on this?

Echelon9

2012-02-11 03:22

developer   ~0013274

Still working on it.
There is code to correctly free the relevant malloc'd memory, so I'm currently thinking there is a code path which exits without correctly calling that function to free the memory.

Echelon9

2015-05-03 03:19

developer   ~0016690

Closing as unable to reproduce with current trunk. Cross-checked with Valgrind on Linux which did not report such a leak.

Issue History

Date Modified Username Field Change
2011-11-05 08:25 Echelon9 New Issue
2011-11-05 08:26 Echelon9 Status new => assigned
2011-11-05 08:26 Echelon9 Assigned To => Echelon9
2011-11-05 08:26 Echelon9 Summary Valgrind: Memory leak - => Valgrind: Memory leak - anim_load()
2012-02-09 07:03 Goober5000 Note Added: 0013267
2012-02-11 03:22 Echelon9 Note Added: 0013274
2015-05-03 03:19 Echelon9 Note Added: 0016690
2015-05-03 03:19 Echelon9 Status assigned => closed
2015-05-03 03:19 Echelon9 Resolution open => no change required
2015-05-03 03:19 Echelon9 Fixed in Version => 3.7.2