]> git.sur5r.net Git - openldap/commitdiff
ITS#5748: tavl_find3(NULL,,,) returned undefined data
authorHallvard Furuseth <hallvard@openldap.org>
Wed, 22 Oct 2008 19:39:42 +0000 (19:39 +0000)
committerHallvard Furuseth <hallvard@openldap.org>
Wed, 22 Oct 2008 19:39:42 +0000 (19:39 +0000)
libraries/liblutil/tavl.c

index 403fa11f47e3d7b2bcb993c90381dc863b222d71..d64474fe943e33c54f5a16d734261f1831c3d5b1 100644 (file)
@@ -448,13 +448,13 @@ tavl_free( Avlnode *root, AVL_FREE dfree )
 /*
  * tavl_find2 - returns Avlnode instead of data pointer.
  * tavl_find3 - as above, but returns Avlnode even if no match is found.
- *                             also return the last comparison result in ret.
+ *                             also set *ret = last comparison result, or -1 if root == NULL.
  */
 Avlnode *
 tavl_find3( Avlnode *root, const void *data, AVL_CMP fcmp, int *ret )
 {
-       int     cmp, dir;
-       Avlnode *prev;
+       int     cmp = -1, dir;
+       Avlnode *prev = root;
 
        while ( root != 0 && (cmp = (*fcmp)( data, root->avl_data )) != 0 ) {
                prev = root;