libubus: Fix deletion from context's object AVL tree when removing object
authorBob Ham <bob.ham@tomltd.co.uk>
Thu, 9 Nov 2017 15:53:24 +0000 (15:53 +0000)
committerFelix Fietkau <nbd@nbd.name>
Mon, 13 Nov 2017 08:51:40 +0000 (09:51 +0100)
commit6d1ea6c33d321e4840b05986b6ce8e214bd1ba3a
tree635950be08933e4601e0369bb65546ecb5887116
parent9c13096b169759eabf4c528df22d605e2d6093f4
libubus: Fix deletion from context's object AVL tree when removing object

Objects are stored in the ubus context in an AVL tree.  An AVL tree
node contains a pointer to a key value.  For the ubus context, this
points to the id member of the object structure.  In
ubus_remove_object_cb, the id member is set to zero and then after,
avl_delete is called and fails.  To fix this, we call avl_delete
before setting the object id to zero.

Signed-off-by: Bob Ham <bob.ham@tomltd.co.uk>
libubus-obj.c