aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2021-12-11 11:03:20 +0000
committerSimon Tatham <anakin@pobox.com>2021-12-11 11:03:20 +0000
commit3e006158451a7ff8f130cbcb7dd80f165a58396e (patch)
tree6b95ee50c1c0ebf180c9b72ccc79138b41f0bc88
parent640f9235c79cdb1a924b0148cb312b0f02253364 (diff)
downloadpuzzles-3e006158451a7ff8f130cbcb7dd80f165a58396e.zip
puzzles-3e006158451a7ff8f130cbcb7dd80f165a58396e.tar.gz
puzzles-3e006158451a7ff8f130cbcb7dd80f165a58396e.tar.bz2
puzzles-3e006158451a7ff8f130cbcb7dd80f165a58396e.tar.xz
Map: add missing sresize in new_game_desc().
Every time we append to the string 'ret', we check first that there's enough space, and realloc it larger if it's getting close to full. Except that I missed one case at the join between the two parts of the encoding. (Spotted because apparently on someone's build platform this led to a compiler warning that 'ret' might be null. I think _that's_ not a serious worry, but the missing resize was definitely unintentional.)
-rw-r--r--map.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/map.c b/map.c
index 1cd80b6..22b24d6 100644
--- a/map.c
+++ b/map.c
@@ -1659,6 +1659,10 @@ static char *new_game_desc(const game_params *params, random_state *rs,
}
}
+ if (retlen + 10 >= retsize) {
+ retsize = retlen + 256;
+ ret = sresize(ret, retsize, char);
+ }
ret[retlen++] = 'a'-1 + run;
ret[retlen++] = ',';