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;