Assignment to sct_mobil was vulnerable to integer underflow. Should
not happen, as move_ground() never returns a cost exceeding available
mobility.
else
pr("No mobility used\n");
getsect(srcx, srcy, §);
else
pr("No mobility used\n");
getsect(srcx, srcy, §);
- sect.sct_mobil -= mcost;
- if (sect.sct_mobil < 0)
+ if (sect.sct_mobil >= mcost)
+ sect.sct_mobil -= mcost;
+ else
sect.sct_mobil = 0;
putsect(§);
return RET_OK;
sect.sct_mobil = 0;
putsect(§);
return RET_OK;
else
pr("No mobility used\n");
getsect(srcx, srcy, §);
else
pr("No mobility used\n");
getsect(srcx, srcy, §);
- sect.sct_mobil -= mcost;
- if (sect.sct_mobil < 0)
+ if (sect.sct_mobil >= mcost)
+ sect.sct_mobil -= mcost;
+ else
sect.sct_mobil = 0;
putsect(§);
return RET_OK;
sect.sct_mobil = 0;
putsect(§);
return RET_OK;