]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/charray.c
Update for new password codes for MSVC5
[openldap] / libraries / libldap / charray.c
index fefe1d916604a2c7362047ce8ec7047420607276..6be31524278042e45666f77ed1dec6f84ca0ca09 100644 (file)
@@ -1,3 +1,4 @@
+/* $OpenLDAP$ */
 /*
  * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
@@ -24,17 +25,27 @@ ldap_charray_add(
        if ( *a == NULL ) {
                *a = (char **) LDAP_MALLOC( 2 * sizeof(char *) );
                n = 0;
+
+               if( *a == NULL ) {
+                       return -1;
+               }
+
        } else {
+               char **new;
+
                for ( n = 0; *a != NULL && (*a)[n] != NULL; n++ ) {
                        ;       /* NULL */
                }
 
-               *a = (char **) LDAP_REALLOC( (char *) *a,
+               new = (char **) LDAP_REALLOC( (char *) *a,
                    (n + 2) * sizeof(char *) );
-       }
 
-       if( *a == NULL ) {
-               return -1;
+               if( new == NULL ) {
+                       /* caller is required to call ldap_charray_free(*a) */
+                       return -1;
+               }
+
+               *a = new;
        }
 
        (*a)[n] = LDAP_STRDUP(s);