From eb4204fe765c2e77e11890e4f4046a8c025cd640 Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Sat, 25 Feb 2017 22:38:13 -0800 Subject: [PATCH] Fix two bugs. One was caused by the previous commit. The other was created by using invalid memory. --- src/pattern.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pattern.c b/src/pattern.c index a581e30..125c08e 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -328,7 +328,7 @@ liblex_result _pattern_build_chain(pattern_chain** into, int* ids, int pattern_i result = _pattern_chain_create(¤t_chain, NULL, NULL); (*index)++; } - } if(string[*index] == '.') { + } else if(string[*index] == '.') { pattern_node* new_node = NULL; _pattern_chain_append_chain_discard(current_chain, &sub_chain); result = _pattern_chain_create(&sub_chain, NULL, NULL); @@ -438,6 +438,8 @@ liblex_result pattern_compile(pattern* ptrn, char* expression, int id){ ptrn->size = ids + 1; free(full_chain); } else { + ptrn->head = NULL; + ptrn->size = 0; if(full_chain){ _pattern_free(full_chain->head, ids); }