From 35d6fc0262d2d2a7067511634435f26d742ddac8 Mon Sep 17 00:00:00 2001 From: MysterD Date: Fri, 25 Mar 2022 22:19:29 -0700 Subject: [PATCH] Fixed crash in geo_remove_child() --- src/engine/graph_node.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/engine/graph_node.c b/src/engine/graph_node.c index eb64232e..2ca5b051 100644 --- a/src/engine/graph_node.c +++ b/src/engine/graph_node.c @@ -578,12 +578,16 @@ struct GraphNode *geo_remove_child(struct GraphNode *graphNode) { struct GraphNode *parent; struct GraphNode **firstChild; + if (graphNode == NULL) { return NULL; } + parent = graphNode->parent; firstChild = &parent->children; // Remove link with siblings - graphNode->prev->next = graphNode->next; - graphNode->next->prev = graphNode->prev; + if (graphNode->prev != NULL && graphNode->next != NULL) { + graphNode->prev->next = graphNode->next; + graphNode->next->prev = graphNode->prev; + } // If this node was the first child, a new first child must be chosen if (*firstChild == graphNode) {