]> git.sur5r.net Git - openldap/commitdiff
Clean up memory handlers. Share vector free routines... ber_memvfree().
authorKurt Zeilenga <kurt@openldap.org>
Tue, 1 Jun 1999 19:08:27 +0000 (19:08 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 1 Jun 1999 19:08:27 +0000 (19:08 +0000)
libraries/libldap/apitest.c
libraries/libldap/free.c
libraries/libldap/getvalues.c
libraries/libldap/ldap-int.h
libraries/libldap/schema.c

index e27028a8d6df4e5dc7d08c28072d52c2b5aeb6a2..cbab301c271d2495e205ccc48857920ac2702aa9 100644 (file)
@@ -126,8 +126,8 @@ main(int argc, char **argv)
 #else
                        printf("                     %s\n",
                                api.ldapai_extensions[i]);
-
 #endif
+
                        ldap_memfree(api.ldapai_extensions[i]);
                }
                ldap_memfree(api.ldapai_extensions);
index f55488ea5f2753741653c8a7a40939ce37a52391..2d5b390a16c11d21c21cdbc09285e520c543be7f 100644 (file)
@@ -30,6 +30,12 @@ ldap_memfree( void *p )
        LDAP_FREE( p );
 }
 
+void
+ldap_memvfree( void **v )
+{
+       LDAP_VFREE( v );
+}
+
 void *
 ldap_memalloc( size_t s )
 {
index 8f352dcd61ca94772f80ce44b7d4a003bb135d00..d886ab0689a30ceebfa81f57191720af0e8de529 100644 (file)
@@ -147,25 +147,11 @@ ldap_count_values_len( struct berval **vals )
 void
 ldap_value_free( char **vals )
 {
-       int     i;
-
-       if ( vals == NULL )
-               return;
-       for ( i = 0; vals[i] != NULL; i++ )
-               LDAP_FREE( vals[i] );
-       LDAP_FREE( (char *) vals );
+       LDAP_VFREE( vals );
 }
 
 void
 ldap_value_free_len( struct berval **vals )
 {
-       int     i;
-
-       if ( vals == NULL )
-               return;
-       for ( i = 0; vals[i] != NULL; i++ ) {
-               LDAP_FREE( vals[i]->bv_val );
-               LDAP_FREE( vals[i] );
-       }
-       LDAP_FREE( (char *) vals );
+       ber_bvecfree( vals );
 }
index 684f3dc0248a2456a9ac5ac5900eccfaf0bf7fac..ff2f2da311f413c6f3d8b34d1483bb86ed3aff1d 100644 (file)
 LDAP_BEGIN_DECL
 
 #define LDAP_URL_PREFIX         "ldap://"
-#define LDAP_URL_PREFIX_LEN     7
-#define LDAP_URL_URLCOLON      "URL:"
-#define LDAP_URL_URLCOLON_LEN  4
+#define LDAP_URL_PREFIX_LEN     (sizeof(LDAP_URL_PREFIX)-1)
+#define LDAPS_URL_PREFIX               "ldaps://"
+#define LDAPS_URL_PREFIX_LEN   (sizeof(LDAPS_URL_PREFIX)-1)
+#define LDAP_URL_URLCOLON              "URL:"
+#define LDAP_URL_URLCOLON_LEN  (sizeof(LDAP_URL_URLCOLON)-1)
 #define NULLLDAPURLDESC ((LDAPURLDesc *)NULL)
 
 #define LDAP_REF_STR           "Referral:\n"
-#define LDAP_REF_STR_LEN       10
+#define LDAP_REF_STR_LEN       (sizeof(LDAP_REF_STR)-1)
 #define LDAP_LDAP_REF_STR      LDAP_URL_PREFIX
-#define LDAP_LDAP_REF_STR_LEN  LDAP_URL_PREFIX_LEN
-
-#define LDAP_DEFAULT_REFHOPLIMIT 5
+#define LDAP_LDAP_REF_STR_LEN  (sizeof(LDAP_LDAP_REF_STR)-1)
 
 #ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_DNS
 #define LDAP_DX_REF_STR                "dx://"
-#define LDAP_DX_REF_STR_LEN    5
+#define LDAP_DX_REF_STR_LEN    (sizeof(LDAP_DX_REF_STR)-1)
 #endif /* LDAP_API_FEATURE_X_OPENLDAP_V2_DNS */
 
+#define LDAP_DEFAULT_REFHOPLIMIT 5
+
 #define LDAP_BOOL_REFERRALS            0
 #define LDAP_BOOL_RESTART              1
 #define LDAP_BOOL_DNS                  2
@@ -269,12 +271,14 @@ void ldap_int_initialize LDAP_P((void));
 #define LDAP_INT_CALLOC(n,s)   (LBER_CALLOC((n),(s)))
 #define LDAP_INT_REALLOC(p,s)  (LBER_REALLOC((p),(s)))
 #define LDAP_INT_FREE(p)               (LBER_FREE((p)))
+#define LDAP_INT_VFREE(v)              (LBER_VFREE((v)))
 
 #ifndef LDAP_MALLOC
 #define LDAP_MALLOC(s)         (LBER_MALLOC((s)))
 #define LDAP_CALLOC(n,s)       (LBER_CALLOC((n),(s)))
 #define LDAP_REALLOC(p,s)      (LBER_REALLOC((p),(s)))
 #define LDAP_FREE(p)           (LBER_FREE((p)))
+#define LDAP_VFREE(v)          (LBER_VFREE((v)))
 #endif
 
 /*
index 50fd9c4d391deca4b78c33e5a6bda0e28e86866b..3f06e8ce364dad88f7e78e5bee9fb951004e7a28 100644 (file)
@@ -42,14 +42,17 @@ new_safe_string(int size)
        ss = LDAP_MALLOC(sizeof(safe_string));
        if ( !ss )
                return(NULL);
-       ss->size = size;
-       ss->pos = 0;
+
        ss->val = LDAP_MALLOC(size);
-       ss->at_whsp = 0;
        if ( !ss->val ) {
                LDAP_FREE(ss);
                return(NULL);
        }
+
+       ss->size = size;
+       ss->pos = 0;
+       ss->at_whsp = 0;
+
        return ss;
 }
 
@@ -58,8 +61,8 @@ safe_string_free(safe_string * ss)
 {
        if ( !ss )
                return;
-       ldap_memfree(ss->val);
-       ldap_memfree(ss);
+       LDAP_FREE(ss->val);
+       LDAP_FREE(ss);
 }
 
 static char *
@@ -431,27 +434,6 @@ ldap_attributetype2str( LDAP_ATTRIBUTE_TYPE * at )
        return(retstring);
 }
 
-/*
- * This is ripped from servers/slapd/charray.c that should be promoted
- * to -lldap or something so that it is used everywhere.
- */
-static void
-charray_free( char **array )
-{
-       char    **a;
-
-       if ( array == NULL ) {
-               return;
-       }
-
-       for ( a = array; *a != NULL; a++ ) {
-               if ( *a != NULL ) {
-                       LDAP_FREE( *a );
-               }
-       }
-       LDAP_FREE( (char *) array );
-}
-
 /*
  * Now come the parsers.  There is one parser for each entity type:
  * objectclasses, attributetypes, etc.
@@ -644,7 +626,7 @@ parse_qdescrs(char **sp, int *code)
                                        size++;
                                        res1 = LDAP_REALLOC(res,size*sizeof(char *));
                                        if ( !res1 ) {
-                                               charray_free(res);
+                                               LDAP_VFREE(res);
                                                *code = LDAP_SCHERR_OUTOFMEM;
                                                return(NULL);
                                        }
@@ -654,7 +636,7 @@ parse_qdescrs(char **sp, int *code)
                                pos++;
                                parse_whsp(sp);
                        } else {
-                               charray_free(res);
+                               LDAP_VFREE(res);
                                *code = LDAP_SCHERR_UNEXPTOKEN;
                                return(NULL);
                        }
@@ -716,7 +698,7 @@ parse_noidlen(char **sp, int *code, int *len)
                (*sp)++;
                if ( **sp != '}' ) {
                        *code = LDAP_SCHERR_UNEXPTOKEN;
-                       ldap_memfree(sval);
+                       LDAP_FREE(sval);
                        return NULL;
                }
                (*sp)++;
@@ -766,7 +748,7 @@ parse_oids(char **sp, int *code)
                        pos++;
                } else {
                        *code = LDAP_SCHERR_UNEXPTOKEN;
-                       charray_free(res);
+                       LDAP_VFREE(res);
                        return NULL;
                }
                parse_whsp(sp);
@@ -783,7 +765,7 @@ parse_oids(char **sp, int *code)
                                                size++;
                                                res1 = LDAP_REALLOC(res,size*sizeof(char *));
                                                if ( !res1 ) {
-                                                 charray_free(res);
+                                                 LDAP_VFREE(res);
                                                  *code = LDAP_SCHERR_OUTOFMEM;
                                                  return(NULL);
                                                }
@@ -793,13 +775,13 @@ parse_oids(char **sp, int *code)
                                        pos++;
                                } else {
                                        *code = LDAP_SCHERR_UNEXPTOKEN;
-                                       charray_free(res);
+                                       LDAP_VFREE(res);
                                        return NULL;
                                }
                                parse_whsp(sp);
                        } else {
                                *code = LDAP_SCHERR_UNEXPTOKEN;
-                               charray_free(res);
+                               LDAP_VFREE(res);
                                return NULL;
                        }
                }
@@ -825,9 +807,9 @@ parse_oids(char **sp, int *code)
 static void
 free_syn(LDAP_SYNTAX * syn)
 {
-       ldap_memfree(syn->syn_oid);
-       ldap_memfree(syn->syn_desc);
-       ldap_memfree(syn);
+       LDAP_FREE(syn->syn_oid);
+       LDAP_FREE(syn->syn_desc);
+       LDAP_FREE(syn);
 }
 
 LDAP_SYNTAX *
@@ -930,15 +912,15 @@ ldap_str2syntax( char * s, int * code, char ** errp )
 static void
 free_at(LDAP_ATTRIBUTE_TYPE * at)
 {
-       ldap_memfree(at->at_oid);
-       charray_free(at->at_names);
-       ldap_memfree(at->at_desc);
-       ldap_memfree(at->at_sup_oid);
-       ldap_memfree(at->at_equality_oid);
-       ldap_memfree(at->at_ordering_oid);
-       ldap_memfree(at->at_substr_oid);
-       ldap_memfree(at->at_syntax_oid);
-       ldap_memfree(at);
+       LDAP_FREE(at->at_oid);
+       LDAP_VFREE(at->at_names);
+       LDAP_FREE(at->at_desc);
+       LDAP_FREE(at->at_sup_oid);
+       LDAP_FREE(at->at_equality_oid);
+       LDAP_FREE(at->at_ordering_oid);
+       LDAP_FREE(at->at_substr_oid);
+       LDAP_FREE(at->at_syntax_oid);
+       LDAP_FREE(at);
 }
 
 LDAP_ATTRIBUTE_TYPE *
@@ -1212,13 +1194,13 @@ ldap_str2attributetype( char * s, int * code, char ** errp )
 static void
 free_oc(LDAP_OBJECT_CLASS * oc)
 {
-       ldap_memfree(oc->oc_oid);
-       charray_free(oc->oc_names);
-       ldap_memfree(oc->oc_desc);
-       charray_free(oc->oc_sup_oids);
-       charray_free(oc->oc_at_oids_must);
-       charray_free(oc->oc_at_oids_may);
-       ldap_memfree(oc);
+       LDAP_FREE(oc->oc_oid);
+       LDAP_VFREE(oc->oc_names);
+       LDAP_FREE(oc->oc_desc);
+       LDAP_VFREE(oc->oc_sup_oids);
+       LDAP_VFREE(oc->oc_at_oids_must);
+       LDAP_VFREE(oc->oc_at_oids_may);
+       LDAP_FREE(oc);
 }
 
 LDAP_OBJECT_CLASS *