aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <fiddlosopher@gmail.com>2014-11-28 12:14:44 -0800
committerJohn MacFarlane <fiddlosopher@gmail.com>2014-11-28 12:14:44 -0800
commitd94d592d2b76c2f0c4bc27ab74ff145ee1e390f5 (patch)
tree89e7d7d566ba062a0d811e8f69abb0dbb928d956
parent3f251cdca271ddb79d06fb8fc101499d0e9a3021 (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.c3
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;
}
-