1From 7c3b1dfb174312594d3317c24ed71c60398f653f Mon Sep 17 00:00:00 2001
2From: Ramon Fried <ramon@neureality.ai>
3Date: Wed, 10 Feb 2021 04:23:36 +0200
4Subject: [PATCH] parser: Fix SIGSEGV caused by using flb_free instead of
5 mk_mem_free
6
7Upstream-Status: Backport (fix only for 1.3.5)
8Signed-off-by: Ramon Fried <ramon@neureality.ai>
9---
10 src/flb_parser.c | 28 ++++++++++++++--------------
11 1 file changed, 14 insertions(+), 14 deletions(-)
12
13diff --git a/src/flb_parser.c b/src/flb_parser.c
14index d35c568..7c20e12 100644
15--- a/src/flb_parser.c
16+++ b/src/flb_parser.c
17@@ -490,7 +490,7 @@ int flb_parser_conf_file(const char *file, struct flb_config *config)
18                                        MK_RCONF_STR);
19         if (str) {
20             time_keep = flb_utils_bool(str);
21-            flb_free(str);
22+            mk_mem_free(str);
23         }
24         else {
25             time_keep = FLB_FALSE;
26@@ -522,23 +522,23 @@ int flb_parser_conf_file(const char *file, struct flb_config *config)
27
28         flb_debug("[parser] new parser registered: %s", name);
29
30-        flb_free(name);
31-        flb_free(format);
32+        mk_mem_free(name);
33+        mk_mem_free(format);
34
35         if (regex) {
36-            flb_free(regex);
37+            mk_mem_free(regex);
38         }
39         if (time_fmt) {
40-            flb_free(time_fmt);
41+            mk_mem_free(time_fmt);
42         }
43         if (time_key) {
44-            flb_free(time_key);
45+            mk_mem_free(time_key);
46         }
47         if (time_offset) {
48-            flb_free(time_offset);
49+            mk_mem_free(time_offset);
50         }
51         if (types_str) {
52-            flb_free(types_str);
53+            mk_mem_free(types_str);
54         }
55
56         decoders = NULL;
57@@ -548,19 +548,19 @@ int flb_parser_conf_file(const char *file, struct flb_config *config)
58     return 0;
59
60  fconf_error:
61-    flb_free(name);
62-    flb_free(format);
63+    mk_mem_free(name);
64+    mk_mem_free(format);
65     if (regex) {
66-        flb_free(regex);
67+        mk_mem_free(regex);
68     }
69     if (time_fmt) {
70-        flb_free(time_fmt);
71+        mk_mem_free(time_fmt);
72     }
73     if (time_key) {
74-        flb_free(time_key);
75+        mk_mem_free(time_key);
76     }
77     if (types_str) {
78-        flb_free(types_str);
79+        mk_mem_free(types_str);
80     }
81     if (decoders) {
82         flb_parser_decoder_list_destroy(decoders);
83