fix c_avl_iterator_prev (#2917)
[collectd.git] / src / daemon / utils_avltree.c
index 6a4e0f3..568d68c 100644 (file)
@@ -534,6 +534,8 @@ int c_avl_pick(c_avl_tree_t *t, void **key, void **value) {
   c_avl_node_t *n;
   c_avl_node_t *p;
 
+  assert(t != NULL);
+
   if ((key == NULL) || (value == NULL))
     return -1;
   if (t->root == NULL)
@@ -619,7 +621,7 @@ int c_avl_iterator_prev(c_avl_iterator_t *iter, void **key, void **value) {
     return -1;
 
   if (iter->node == NULL) {
-    for (n = iter->tree->root; n != NULL; n = n->left)
+    for (n = iter->tree->root; n != NULL; n = n->right)
       if (n->right == NULL)
         break;
     iter->node = n;