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.
This commit is contained in:
Ben Harris
2023-02-20 14:50:22 +00:00
parent 1235f05af7
commit 4e09175fda

View File

@ -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;