Pages:<< prev 1 next >>
#1 Oct 14, 2007 12:14 pm
Black Hand
GroupAdministrators
Posts3,685
JoinedJan 1, 2002
Bug: Failed object invocation results in a memory leak
Danger: Low - Memory leak under specific conditions
Discovered in: AFKMud 2.01
Found by: Samson
Fixed by: Samson
---
act_wiz.cpp, objinvoke
Locate:
Change to:
Simple oversight. If the multiport functions are enable and someone who is below the admin level tries to load a rare item, they get told they can't do that on the main game port. That object still got generated in memory and was still added to the global object list. But it has not been placed in an inventory or in a room. It is essentially left dangling. Needless to say this results in a memory leak of sorts, even though the object is technically still reachable by the update loops.
Danger: Low - Memory leak under specific conditions
Discovered in: AFKMud 2.01
Found by: Samson
Fixed by: Samson
---
act_wiz.cpp, objinvoke
Locate:
if( !ch->is_imp( ) ) { ch->print( "Loading of rare items is restricted to KLs and above on this port.\r\n" ); return; }
Change to:
if( !ch->is_imp( ) ) { ch->print( "Loading of rare items is restricted to KLs and above on this port.\r\n" ); obj->extract(); // It got created, now we need to destroy it. return; }
Simple oversight. If the multiport functions are enable and someone who is below the admin level tries to load a rare item, they get told they can't do that on the main game port. That object still got generated in memory and was still added to the global object list. But it has not been placed in an inventory or in a room. It is essentially left dangling. Needless to say this results in a memory leak of sorts, even though the object is technically still reachable by the update loops.
Pages:<< prev 1 next >>