bash %> gdb (your exe)
gdb %> break do_ban
gdb %> run
BAN_DATA *new_ban( void )
{
static BAN_DATA ban_zero;
BAN_DATA *ban = NULL;
if ( ban_free == NULL )
ban = ( BAN_DATA * ) alloc_perm( sizeof( *ban ) );
else
{
ban = ban_free;
ban_free = ban_free->next;
}
*ban = ban_zero;
VALIDATE( ban );
ban->name.erase();
return ban;
}
53 static BAN_DATA ban_zero;
>step <– My one command entered
224 __gnu_cxx::__atomic_add<&this_>_M_refcount, 1);
69 ~new_allocator() throw() ()
198 { return reinterpret_cast<_CharT*>(this +1);
236 : _Alloc(__a), _M_p(__dat) { }
53 static BAN_DATA ban_zero;
56 if ( ban_free == NULL )
57 ban = ( BAN_DATA * ) alloc_perm( sizeof( *ban ) );
Program received signal SIGSEGV, Segmentation fault.
0x004849c9 in __gnu_cxx::__exchange_and_add ()
I also checked the old ban system of Ice and while nothing crashed, when I banned myself and other characters it added to the list, but did not do anything.