diff --git a/CHANGES b/CHANGES index d0daf013e60a3d9620992b1fb634f3806eb7f779..ebc1f4d9d43567f33b4a224eaa1cebf78b73e608 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,7 @@ OpenLDAP 2.4.14 Engineering Added libldap TLS_PROTOCOL_MIN (ITS#5655) Added libldap GnuTLS support for TLS_CIPHER_SUITE (ITS#5887) Added libldap GnuTLS setting random file (ITS#5462) + Fixed libldap avl to macroize constants (ITS#5909) Fixed libldap deref handling (ITS#5768) Fixed libldap peer cert memory leak (ITS#5849) Fixed libldap interaction with GnuTLS CN IP-based matches (ITS#5789) diff --git a/libraries/liblutil/avl.c b/libraries/liblutil/avl.c index 6665307a364cfeb3abb1542e19200b7c51d9ab91..ef62a6ff57076b34214647c2a14b5f60847f2845 100644 --- a/libraries/liblutil/avl.c +++ b/libraries/liblutil/avl.c @@ -34,6 +34,7 @@ #include "portable.h" +#include <limits.h> #include <stdio.h> #include <ac/stdlib.h> @@ -48,6 +49,9 @@ #define AVL_INTERNAL #include "avl.h" +/* Maximum tree depth this host's address space could support */ +#define MAX_TREE_DEPTH (sizeof(void *) * CHAR_BIT) + static const int avl_bfs[] = {LH, RH}; /* @@ -180,8 +184,8 @@ avl_delete( Avlnode **root, void* data, AVL_CMP fcmp ) int side, side_bf, shorter, nside; /* parent stack */ - Avlnode *pptr[sizeof(void *)*8]; - unsigned char pdir[sizeof(void *)*8]; + Avlnode *pptr[MAX_TREE_DEPTH]; + unsigned char pdir[MAX_TREE_DEPTH]; int depth = 0; if ( *root == NULL )