From 764290b85137be807087d6a1a27127eced98d124 Mon Sep 17 00:00:00 2001 From: celerizer <33245078+celerizer@users.noreply.github.com> Date: Fri, 10 Nov 2017 07:17:07 -0600 Subject: [PATCH] Free memory on invalid LB, allow decimal multipliers --- cheevos/cheevos.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cheevos/cheevos.c b/cheevos/cheevos.c index 4f5748a9d7..ecd1a99c1c 100644 --- a/cheevos/cheevos.c +++ b/cheevos/cheevos.c @@ -189,7 +189,7 @@ typedef struct typedef struct { cheevos_var_t var; - int multiplier; + double multiplier; bool compare_next; } cheevos_term_t; @@ -995,11 +995,15 @@ static int cheevos_parse_expression(cheevos_expr_t *expr, const char* mem) return 0; // invalid character in expression - else return 1; + else + { + free((void*)expr->terms); + return -1; + } } else { - expr->terms[i].multiplier = (int)strtol(aux + 1, &end, 10); + expr->terms[i].multiplier = strtod(aux + 1, &end); aux = end; if(*aux == '$')