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);