From 13cd9f3d04b944d4a0411f203d31f7e8a07ba986 Mon Sep 17 00:00:00 2001 From: Dianne Skoll Date: Tue, 28 Dec 2021 17:53:41 -0500 Subject: [PATCH] Fix memory leak. --- src/var.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/var.c b/src/var.c index 53d6f746..7134ac2a 100644 --- a/src/var.c +++ b/src/var.c @@ -810,6 +810,7 @@ static void DumpSysVar (char const *name, const SysVar *v); /***************************************************************/ int SetSysVar(char const *name, Value *value) { + int r; SysVar *v = FindSysVar(name); if (!v) return E_NOSUCH_VAR; if (v->type != SPECIAL_TYPE && @@ -821,7 +822,9 @@ int SetSysVar(char const *name, Value *value) if (v->type == SPECIAL_TYPE) { SysVarFunc f = (SysVarFunc) v->value; - return f(1, value); + r = f(1, value); + DestroyValue(*value); + return r; } else if (v->type == STR_TYPE) { /* If it's a string variable, special measures must be taken */ if (v->been_malloced) free(*((char **)(v->value)));