Pages:<< prev 1 next >>
Off the Edge of the Map

GroupAdministrators
Posts1,199
JoinedMar 21, 2006
Bug: Memory Leaks while reading GovernedBy and Starsystem of planets.
Danger: High - Memory Leaks are BAD.
Found by: Caius
Fixed by: Kayle and Caius
---
clans.c, fread_planet
Find:
Replace with:
Find:
Replace with:
I think I said this already, but.. Memory Leaks are BAD. Bad for business. Bad for.. just Bad. See, fread_string calls STRALLOC. Which allocates memory. But said memory was never being freed. Thus.. memory leak. So you do what I did and poof. No more leak.
(I wrote up this fix at like 3AM. This is a prime example of why working while tired is a bad thing...)
Danger: High - Memory Leaks are BAD.
Found by: Caius
Fixed by: Kayle and Caius
---
clans.c, fread_planet
Find:
case 'G':
if( !str_cmp( word, "GovernedBy" ) )
{
planet->governed_by = get_clan( fread_string( fp ) );
fMatch = TRUE;
}
break;
Replace with:
case 'G':
if( !str_cmp( word, "GovernedBy" ) )
{
const char *clan_name = fread_string( fp );
planet->governed_by = get_clan( clan_name );
fMatch = TRUE;
STRFREE( clan_name );
}
break;
Find:
if( !str_cmp( word, "Starsystem" ) )
{
planet->starsystem = starsystem_from_name( fread_string( fp ) );
if( planet->starsystem )
{
SPACE_DATA *starsystem = planet->starsystem;
LINK( planet, starsystem->first_planet, starsystem->last_planet, next_in_system, prev_in_system );
}
fMatch = TRUE;
}
Replace with:
if( !str_cmp( word, "Starsystem" ) )
{
const char *starsystem_name = fread_string( fp );
planet->starsystem = starsystem_from_name( starsystem_name );
if( planet->starsystem )
{
SPACE_DATA *starsystem = planet->starsystem;
LINK( planet, starsystem->first_planet, starsystem->last_planet, next_in_system, prev_in_system );
}
fMatch = TRUE;
STRFREE( starsystem_name );
}
I think I said this already, but.. Memory Leaks are BAD. Bad for business. Bad for.. just Bad. See, fread_string calls STRALLOC. Which allocates memory. But said memory was never being freed. Thus.. memory leak. So you do what I did and poof. No more leak.
(I wrote up this fix at like 3AM. This is a prime example of why working while tired is a bad thing...)
Pages:<< prev 1 next >>