From: Petr Štetiar Date: Wed, 20 Nov 2019 08:31:08 +0000 (+0100) Subject: avl: guard against theoretical null pointer dereference X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=9b6ede0e5312071400e6b009c6b92413061bbfaa;p=project%2Flibubox.git avl: guard against theoretical null pointer dereference clang-10 analyzer reports following: avl.c:671:25: warning: Access to field 'parent' results in a dereference of a null pointer (loaded from field 'right') node->right->parent = parent; ~~~~~ ^ Which seems to be impossible to trigger via exported AVL public API, but it could be probably trigerred by fiddling with the AVL tree node struct members manually as they are exposed. Signed-off-by: Petr Štetiar --- diff --git a/avl.c b/avl.c index 8d0bf65..79ea5c7 100644 --- a/avl.c +++ b/avl.c @@ -45,6 +45,7 @@ #include #include "avl.h" +#include "assert.h" #include "list.h" /** @@ -668,6 +669,7 @@ avl_delete_worker(struct avl_tree *tree, struct avl_node *node) return; } + assert(node->right); node->right->parent = parent; if (parent->left == node)