From a8774831e84d1487c9fe1206bf12bdb515fd59b1 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 10 Mar 2016 11:43:13 -0800 Subject: [PATCH] Fix buffer overflow when limiting stack node's successor count --- src/runtime/stack.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/runtime/stack.c b/src/runtime/stack.c index 9b249c90..514a3856 100644 --- a/src/runtime/stack.c +++ b/src/runtime/stack.c @@ -133,11 +133,13 @@ static void stack_node_add_successor(StackNode *self, TSTree *new_tree, } } - stack_node_retain(new_node); - ts_tree_retain(new_tree); - self->successors[self->successor_count++] = (StackLink){ - new_node, new_tree, - }; + if (self->successor_count < MAX_SUCCESSOR_COUNT) { + stack_node_retain(new_node); + ts_tree_retain(new_tree); + self->successors[self->successor_count++] = (StackLink){ + new_node, new_tree, + }; + } } /*