]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/charray.c
Fix attribute description checks
[openldap] / libraries / libldap / charray.c
index 82d2feeb1ba264e09413991ad54c337addb7d220..5037f6610a69b01426b2d029662f2522f798c0df 100644 (file)
@@ -77,8 +77,9 @@ ldap_charray_merge(
 
        aa = (char **) LDAP_REALLOC( (char *) *a, (n + nn + 1) * sizeof(char *) );
 
-       if( aa == NULL )
+       if( aa == NULL ) {
                return -1;
+       }
 
        *a = aa;
 
@@ -221,25 +222,26 @@ ldap_str2charray( const char *str_in, const char *brkstr )
 char * ldap_charray2str( char **a, const char *sep )
 {
        char *s, **v, *p;
-       int len = 0;
+       int len;
        int slen;
 
        if( sep == NULL ) sep = " ";
 
        slen = strlen( sep );
+       len = 0;
 
        for ( v = a; *v != NULL; v++ ) {
-               len += strlen( *v ) + slen; /* for a space */
+               len += strlen( *v ) + slen;
        }
 
        if ( len == 0 ) {
                return NULL;
        }
 
+       /* trim extra sep len */
        len -= slen;
-       len += 1; /* EOS */
 
-       s = LDAP_MALLOC ( len );
+       s = LDAP_MALLOC ( len + 1 );
 
        if ( s == NULL ) {
                return NULL;    
@@ -247,8 +249,6 @@ char * ldap_charray2str( char **a, const char *sep )
 
        p = s;
        for ( v = a; *v != NULL; v++ ) {
-               int len;
-
                if ( v != a ) {
                        strncpy( p, sep, slen );
                        p += slen;