diff options
| -rw-r--r-- | solo.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -3849,7 +3849,11 @@ static char *spec_to_dsf(const char **pdesc, int **pdsf, int cr, int area) * Non-edge; merge the two dsf classes on either * side of it. */ - assert(pos < 2*cr*(cr-1)); + if (pos >= 2*cr*(cr-1)) { + sfree(dsf); + return "Too much data in block structure specification"; + } + if (pos < cr*(cr-1)) { int y = pos/(cr-1); int x = pos%(cr-1); |