]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
main/refer.c: Fix double free in refer_data_destructor + potential leak
authorMaximilian Fridrich <m.fridrich@commend.com>
Mon, 21 Aug 2023 16:28:42 +0000 (18:28 +0200)
committerMaximilian Fridrich <m.fridrich@commend.com>
Tue, 22 Aug 2023 13:30:51 +0000 (13:30 +0000)
Resolves: #267

main/refer.c

index 11db0652fc7fa87baed177f1cd41dbb5578ac56f..2a4a1159242074231d1a53f832d69c8dbdea8b1e 100644 (file)
@@ -109,7 +109,6 @@ static void refer_data_destructor(void *obj)
 {
        struct refer_data *data = obj;
        ast_free(data->value);
-       ast_free(data);
 }
 
 static void refer_destructor(void *obj)
@@ -298,6 +297,7 @@ static int refer_set_var_full(struct ast_refer *refer, const char *name, const c
                if (ast_strlen_zero(value)) {
                        ao2_unlink(refer->vars, data);
                } else {
+                       ast_free(data->value);
                        data->value = ast_strdup(value);
                }
        }