From 1dc1ed786fda790f60f2fe9f8e7c404c73ae64da Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 16 Jan 2023 00:07:01 +0100 Subject: [PATCH] Fix memory leak in convert_tilesize If old_dpr == new_dpr, convert_tilesize returns early without freeing defaults. Move the initialisation of defaults after this special case. --- midend.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/midend.c b/midend.c index a14004d..1769095 100644 --- a/midend.c +++ b/midend.c @@ -321,10 +321,13 @@ static int convert_tilesize(midend *me, int old_tilesize, double old_dpr, double new_dpr) { int x, y, rx, ry, min, max; - game_params *defaults = me->ourgame->default_params(); + game_params *defaults; if (new_dpr == old_dpr) return old_tilesize; + + defaults = me->ourgame->default_params(); + me->ourgame->compute_size(defaults, old_tilesize, &x, &y); x *= new_dpr / old_dpr; y *= new_dpr / old_dpr;