[quake3-commits] [ioquake/ioq3] fc16ac: Fix invalid access to cluster 0 in AAS_AreaRouteTo...

Zack Middleton zack at cloemail.com
Sun Feb 4 10:10:17 EST 2018


  Branch: refs/heads/master
  Home:   https://github.com/ioquake/ioq3
  Commit: fc16ac6bd2d05cba8a2d057994b097e95bae28a0
      https://github.com/ioquake/ioq3/commit/fc16ac6bd2d05cba8a2d057994b097e95bae28a0
  Author: Zack Middleton <zack at cloemail.com>
  Date:   2018-02-04 (Sun, 04 Feb 2018)

  Changed paths:
    M code/botlib/be_aas_route.c

  Log Message:
  -----------
  Fix invalid access to cluster 0 in AAS_AreaRouteToGoalArea()

Newer versions of BSPC such as 2.1h included with the Quake 3 GPL source
code create AAS files containing areas in cluster 0 if the area has no
reachabilities.

The AAS files included with Quake 3 and Team Arena do not contain areas
in cluster 0. It's apparent that BSPC would not create them. Instead it
created clusters with no reachability areas.

It seems the intention was to check if the areanum and goalareanum have
reachable areas using AAS_AreaReachability(areanum) everywhere before
calling AAS_AreaRouteToGoalArea(). This prevents adding cluster 0 to
the routing cache and portal cache. However, it is not checked
everywhere and including some places in the Game VM.

Fix AAS_AreaRouteToGoalArea() instead of trying to wack-a-mole with all
the places that call it.

Cluster 0 access reported by Thomas Köppe (github @tkoeppe) as causing
crashes in rare cases.




More information about the quake3-commits mailing list