diff options
author | John MacFarlane <fiddlosopher@gmail.com> | 2014-11-28 12:14:44 -0800 |
---|---|---|
committer | John MacFarlane <fiddlosopher@gmail.com> | 2014-11-28 12:14:44 -0800 |
commit | d94d592d2b76c2f0c4bc27ab74ff145ee1e390f5 (patch) | |
tree | 89e7d7d566ba062a0d811e8f69abb0dbb928d956 | |
parent | 3f251cdca271ddb79d06fb8fc101499d0e9a3021 (diff) |
Avoid potential memory leak.
Previously, if malloc failed to allocate 'newstack', the function
would return without freeing 'stack'. Pointed out by clang static
analyzer.
-rw-r--r-- | src/blocks.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/blocks.c b/src/blocks.c index b51179b..c028b8b 100644 --- a/src/blocks.c +++ b/src/blocks.c @@ -302,7 +302,7 @@ static void process_inlines(cmark_node* cur, cmark_reference_map *refmap) if (cur->first_child) { newstack = (block_stack*)malloc(sizeof(block_stack)); - if (newstack == NULL) return; + if (newstack == NULL) break; newstack->previous = stack; stack = newstack; stack->next_sibling = cur->next; @@ -840,4 +840,3 @@ cmark_node *cmark_finish(cmark_doc_parser *parser) #endif return parser->root; } - |