Author: sveinung Date: Tue Aug 16 19:55:14 2016 New Revision: 33628 URL: http://svn.gna.org/viewcvs/freeciv?rev=33628&view=rev Log: Sanity check action distance range.
See patch #7605 Modified: trunk/server/rssanity.c Modified: trunk/server/rssanity.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/rssanity.c?rev=33628&r1=33627&r2=33628&view=diff ============================================================================== --- trunk/server/rssanity.c (original) +++ trunk/server/rssanity.c Tue Aug 16 19:55:14 2016 @@ -21,6 +21,7 @@ #include "effects.h" #include "game.h" #include "government.h" +#include "map.h" #include "movement.h" #include "player.h" #include "road.h" @@ -901,6 +902,27 @@ action_iterate(act) { struct action *paction = action_by_number(act); + if (paction->min_distance < 0) { + ruleset_error(LOG_ERROR, "Action %s: negative min distance (%d).", + action_get_rule_name(act), paction->min_distance); + ok = FALSE; + } + + if (paction->max_distance > MAP_MAX_LINEAR_SIZE) { + ruleset_error(LOG_ERROR, "Action %s: max distance is %d. " + "A map can't be that big.", + action_get_rule_name(act), paction->max_distance); + ok = FALSE; + } + + if (paction->min_distance > paction->max_distance) { + ruleset_error(LOG_ERROR, + "Action %s: min distance is %d but max distance is %d.", + action_get_rule_name(act), + paction->min_distance, paction->max_distance); + ok = FALSE; + } + action_iterate(blocker) { if (BV_ISSET(paction->blocked_by, blocker) && action_get_target_kind(blocker) == ATK_UNIT _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits