Prevent division by zero
authorNHOrus <jy6x2b32pie9@yahoo.com>
Thu, 24 Aug 2017 11:24:13 +0000 (14:24 +0300)
committerNHOrus <jy6x2b32pie9@yahoo.com>
Thu, 24 Aug 2017 11:25:29 +0000 (14:25 +0300)
saveresume.c

index 4378324c3b3fd5bf00437587727563c4f953e496..fdb9ffb2fbafdca479db816fc0efde60f2fde7bc 100644 (file)
@@ -134,8 +134,12 @@ bool is_valid(struct game_t valgame)
      *  valid: no states are outside minimal or maximal value
      */
 
      *  valid: no states are outside minimal or maximal value
      */
 
-    /*  Bounds check for locations
-     */
+    /* Prevent division by zero */
+    if (valgame.abbnum == 0) {
+        return false;
+    }
+
+    /*  Bounds check for locations */
     if ( valgame.chloc < -1  || valgame.chloc > NLOCATIONS  ||
          valgame.chloc < -1  || valgame.chloc > NLOCATIONS  ||
          valgame.loc < -1    || valgame.loc > NLOCATIONS    ||
     if ( valgame.chloc < -1  || valgame.chloc > NLOCATIONS  ||
          valgame.chloc < -1  || valgame.chloc > NLOCATIONS  ||
          valgame.loc < -1    || valgame.loc > NLOCATIONS    ||
@@ -144,8 +148,7 @@ bool is_valid(struct game_t valgame)
          valgame.oldloc < -1 || valgame.oldloc > NLOCATIONS) {
         return false;
     }
          valgame.oldloc < -1 || valgame.oldloc > NLOCATIONS) {
         return false;
     }
-    /*  Bounds check for location arrays
-     */
+    /*  Bounds check for location arrays */
     for (int i = 0; i <= NDWARVES; i++) {
         if (valgame.dloc[i]  < -1 || valgame.dloc[i]  > NLOCATIONS  ||
             valgame.odloc[i] < -1 || valgame.odloc[i] > NLOCATIONS) {
     for (int i = 0; i <= NDWARVES; i++) {
         if (valgame.dloc[i]  < -1 || valgame.dloc[i]  > NLOCATIONS  ||
             valgame.odloc[i] < -1 || valgame.odloc[i] > NLOCATIONS) {