diff options
| author | Ben Harris <bjh21@bjh21.me.uk> | 2023-02-20 14:50:22 +0000 |
|---|---|---|
| committer | Ben Harris <bjh21@bjh21.me.uk> | 2023-02-20 14:58:05 +0000 |
| commit | 4e09175fdaaffc0483fc9bf767311268794d956c (patch) | |
| tree | 89b0ffec23fbcb9c6fbddee3e452c1de3fbb34c1 | |
| parent | 1235f05af70c3acea7eedb0cbfd726ab4ec357c4 (diff) | |
| download | puzzles-4e09175fdaaffc0483fc9bf767311268794d956c.zip puzzles-4e09175fdaaffc0483fc9bf767311268794d956c.tar.gz puzzles-4e09175fdaaffc0483fc9bf767311268794d956c.tar.bz2 puzzles-4e09175fdaaffc0483fc9bf767311268794d956c.tar.xz | |
Fix memory leak in midend_game_id_int()
The "par" string wasn't getting freed on some error paths. Fixed by
freeing it immediately after its last use, which is before any of the
error paths.
| -rw-r--r-- | midend.c | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -1801,6 +1801,7 @@ static const char *midend_game_id_int(midend *me, const char *id, int defmode) newcurparams = me->ourgame->default_params(); } me->ourgame->decode_params(newcurparams, par); + sfree(par); error = me->ourgame->validate_params(newcurparams, desc == NULL); if (error) { me->ourgame->free_params(newcurparams); @@ -1876,8 +1877,6 @@ static const char *midend_game_id_int(midend *me, const char *id, int defmode) me->genmode = GOT_SEED; } - sfree(par); - me->newgame_can_store_undo = false; return NULL; |