From 30a0f3c7b7f480c46e591fe368f839e680bebbb5 Mon Sep 17 00:00:00 2001 From: Allanis <allanis@saracraft.net> Date: Tue, 27 May 2014 19:35:00 +0100 Subject: [PATCH] [Fix] Fix to address realloc not freeing with 0 size on freebsd. Still needed in other places too. --- src/pilot.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/pilot.c b/src/pilot.c index 1adb575..9d16308 100644 --- a/src/pilot.c +++ b/src/pilot.c @@ -1126,8 +1126,12 @@ int pilot_rmOutfit(Pilot* pilot, Outfit* outfit, int quantity) { memmove(&pilot->outfits[i], &pilot->outfits[i+1], sizeof(PilotOutfit)*(pilot->noutfits-i-1)); pilot->noutfits--; - pilot->outfits = realloc(pilot->outfits, - sizeof(PilotOutfit)*(pilot->noutfits)); + if(pilot->noutfits == 0) { + free(pilot->outfits); + pilot->outfits = NULL; + } else + pilot->outfits = realloc(pilot->outfits, + sizeof(PilotOutfit) * (pilot->noutfits)); /* Set secondary and afterburner. */ pilot_setSecondary(pilot, osec);