]> git.pond.sub.org Git - empserver/blobdiff - src/lib/common/cargo.c
Oops when unit_carrier_change() arguments OLD or NEW are invalid
[empserver] / src / lib / common / cargo.c
index 519c29f50e05f10e59fc079fa76d3b12d1d8583b..fbcd06205d823fc847621226eded1b60424025ab 100644 (file)
@@ -186,9 +186,9 @@ unit_carrier_change(struct empobj *cargo, int type, int old, int new)
 {
     if (CANT_HAPPEN(type < 0 || type > EF_NUKE))
        return;
-    if (old >= 0)
+    if (old >= 0 && !CANT_HAPPEN(old >= nclink[type]))
        clink_rem(&clink[type][old], cargo->ef_type, cargo->uid);
-    if (new >= 0)
+    if (new >= 0 && !CANT_HAPPEN(new >= nclink[type]))
        clink_add(&clink[type][new], cargo->ef_type, cargo->uid);
 }