blob: 5d1e5ea780376a8de72f5a35cd7f881535251f60 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
--- contrib/deprecated/yajl/yajl_tree.c (3b4a018b6b389390da3ee13f6b4ce0880cb71807)
+++ contrib/deprecated/yajl/yajl_tree.c (5fe0776c5f96630ddffb63e4ff0292037e12039e)
@@ -143,7 +143,7 @@ static yajl_val context_pop(context_t *ctx)
ctx->stack = stack->next;
v = stack->value;
-
+ free (stack->key);
free (stack);
return (v);
@@ -453,7 +453,14 @@ yajl_val yajl_tree_parse (const char *input,
(const unsigned char *) input,
strlen(input)));
}
+ while(ctx.stack != NULL) {
+ yajl_val v = context_pop(&ctx);
+ yajl_tree_free(v);
+ }
yajl_free (handle);
+ //If the requested memory is not released in time, it will cause memory leakage
+ if(ctx.root)
+ yajl_tree_free(ctx.root);
return NULL;
}
|