> #3 0x486d176d in sprintf () from /lib/libc.so.6 > #4 0x0807127e in do_mstat (ch=0x4956017c, argument=0x487afd24 "8,\023") at > act_wiz.c:2143
The problem's probably with a call to sprintf on that line in act_wiz. Look at the buffer size and how much is being copied into it, make sure none of the arguments are uninitialized (might contain junk data that never has a terminator). Consider using snprintf instead of sprintf, since it shouldn't write over the buffer if used correctly. What happens is, sprintf will gladly copy more into the buffer than it can hold. The buffer sits in memory right next to where the arguments are stored (in the "stack"), so they get written over once sprintf has gone beyond the buffer. So your arguments basically contain junk now. So the memory's corrupt, and that's all gdb has when it goes to drop a core. > act_comm.c:108:48: New fresh storage (type char *) passed as implicitly temp > (not released): capitalize(ch->name) > A memory leak has been detected. Storage allocated locally is not released > before the last reference to it is lost. (Use -mustfreefresh to inhibit > warning) Take everything splint tells you with a grain of salt. :) It's not super smart, it's just looking for things that statistically often cause problems. Use it to find areas of the game to double check. --Palrich.

