From 9f8dbeccb52809d801fc37b8fa6a8530cd07e68c Mon Sep 17 00:00:00 2001
From: Allanis <allanis@saracraft.net>
Date: Wed, 28 May 2014 15:50:24 +0100
Subject: [PATCH] [Fix] More FreeBSD fixes.

---
 src/pilot.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/pilot.c b/src/pilot.c
index 9d16308..3280350 100644
--- a/src/pilot.c
+++ b/src/pilot.c
@@ -1440,8 +1440,12 @@ int pilot_rmMissionCargo(Pilot* pilot, unsigned int cargo_id, int jettison) {
       sizeof(PilotCommodity) * (pilot->ncommodities-i-1));
 
   pilot->ncommodities--;
-  pilot->commodities = realloc(pilot->commodities,
-      sizeof(PilotCommodity) * pilot->ncommodities);
+  if(pilot->ncommodities == 0) {
+    free(pilot->commodities);
+    pilot->commodities = NULL;
+  } else
+    pilot->commodities = realloc(pilot->commodities,
+        sizeof(PilotCommodity) * pilot->ncommodities);
 
   return 0;
 }
@@ -1468,8 +1472,13 @@ int pilot_rmCargo(Pilot* pilot, Commodity* cargo, int quantity) {
         memmove(pilot->commodities+i, pilot->commodities+i+1,
                 sizeof(PilotCommodity)*(pilot->ncommodities-i));
         pilot->ncommodities--;
-        pilot->commodities = realloc(pilot->commodities,
-                                     sizeof(PilotCommodity)*pilot->ncommodities);
+        if(pilot->ncommodities == 0) {
+          free(pilot->commodities);
+          pilot->commodities = NULL;
+        }
+        else
+          pilot->commodities = realloc(pilot->commodities,
+              sizeof(PilotCommodity) * pilot->ncommodities);
       } else
         pilot->commodities[i].quantity -= q;