Ben Harris c84af670b5 Guess: Don't allow any moves once the game is solved
If the game is solved (either by a win or a loss), interpret_move()
can never return a move, but execute_move() should also reject any
moves in case we're loading a corrupt or malicious save file.
Otherwise a save file with more guesses than the maximum allowed can
cause a buffer overrun.

This save file demonstrates the problem when loaded into a build of
Puzzles with AddressSanitizer:

SAVEFILE:41:Simon Tatham's Portable Puzzle Collection
VERSION :1:1
GAME    :5:Guess
PARAMS  :9:c6p4g1Bm
CPARAMS :9:c6p4g1Bm
DESC    :8:b5f3faed
NSTATES :1:3
STATEPOS:1:3
MOVE    :8:G1,1,2,2
MOVE    :8:G4,3,1,1
2023-01-15 16:21:37 +00:00
2022-12-31 16:18:53 +00:00
2021-04-25 22:00:12 +01:00
2021-04-25 09:59:15 +01:00
2023-01-02 18:28:39 +00:00
2018-11-13 21:48:24 +00:00
2023-01-12 22:21:45 +00:00
2021-04-22 06:24:23 +01:00
2021-04-22 06:24:23 +01:00
2021-04-25 22:00:12 +01:00
2021-03-29 19:02:23 +01:00
2018-11-13 21:48:24 +00:00
2018-11-13 21:48:24 +00:00
2018-11-13 21:48:24 +00:00
2017-09-20 18:03:44 +01:00
2023-01-08 13:53:28 +00:00
2021-05-21 09:10:53 +01:00
2021-03-29 19:02:23 +01:00
2023-01-08 13:53:28 +00:00
2018-11-13 21:48:24 +00:00
2017-05-07 16:25:56 +01:00

This is the README accompanying the source code to Simon Tatham's
puzzle collection. The collection's web site is at
<https://www.chiark.greenend.org.uk/~sgtatham/puzzles/>.

The puzzle collection is built using CMake <https://cmake.org/>. To
compile in the simplest way (on any of Linux, Windows or Mac), run
these commands in the source directory:

  cmake .
  cmake --build .

The manual is provided in Windows Help format for the Windows build;
in text format for anyone who needs it; and in HTML for the Mac OS X
application and for the web site. It is generated from a Halibut
source file (puzzles.but), which is the preferred form for
modification. To generate the manual in other formats, rebuild it,
or learn about Halibut, visit the Halibut website at
<https://www.chiark.greenend.org.uk/~sgtatham/halibut/>.
Description
No description provided
Readme 26 MiB
Languages
C 93.3%
JavaScript 1.4%
Objective-C 1.1%
CMake 1.1%
HTML 0.8%
Other 2.2%