version 1.10, 1998/11/15 21:40:16
|
version 1.11, 1998/12/18 20:08:28
|
Line 344 ber_first_element( BerElement *ber, unsi
|
Line 344 ber_first_element( BerElement *ber, unsi
|
*last = ber->ber_ptr + *len; |
*last = ber->ber_ptr + *len; |
|
|
if ( *last == ber->ber_ptr ) { |
if ( *last == ber->ber_ptr ) { |
|
#ifdef LBER_END_SEQORSET |
|
return( LBER_END_SEQORSET ); |
|
#else |
return( LBER_DEFAULT ); |
return( LBER_DEFAULT ); |
|
#endif |
} |
} |
|
|
return( ber_peek_tag( ber, len ) ); |
return( ber_peek_tag( ber, len ) ); |
Line 354 unsigned long
|
Line 358 unsigned long
|
ber_next_element( BerElement *ber, unsigned long *len, char *last ) |
ber_next_element( BerElement *ber, unsigned long *len, char *last ) |
{ |
{ |
if ( ber->ber_ptr == last ) { |
if ( ber->ber_ptr == last ) { |
|
#ifdef LBER_END_SEQORSET |
|
return( LBER_END_SEQORSET ); |
|
#else |
return( LBER_DEFAULT ); |
return( LBER_DEFAULT ); |
|
#endif |
} |
} |
|
|
return( ber_peek_tag( ber, len ) ); |
return( ber_peek_tag( ber, len ) ); |
Line 462 va_dcl
|
Line 470 va_dcl
|
*sss = NULL; |
*sss = NULL; |
j = 0; |
j = 0; |
for ( tag = ber_first_element( ber, &len, &last ); |
for ( tag = ber_first_element( ber, &len, &last ); |
tag != LBER_DEFAULT && rc != LBER_DEFAULT; |
tag != LBER_DEFAULT && |
tag = ber_next_element( ber, &len, last ) ) { |
#ifdef LDAP_END_SEQORSET |
|
tag != LBER_END_SEQORSET && |
|
#endif |
|
rc != LBER_DEFAULT; |
|
tag = ber_next_element( ber, &len, last ) ) |
|
{ |
if ( *sss == NULL ) { |
if ( *sss == NULL ) { |
*sss = (char **) malloc( |
*sss = (char **) malloc( |
2 * sizeof(char *) ); |
2 * sizeof(char *) ); |
Line 474 va_dcl
|
Line 487 va_dcl
|
rc = ber_get_stringa( ber, &((*sss)[j]) ); |
rc = ber_get_stringa( ber, &((*sss)[j]) ); |
j++; |
j++; |
} |
} |
|
#ifdef LDAP_END_SEQORSET |
|
if (rc != LBER_DEFAULT && |
|
tag != LBER_END_SEQORSET ) |
|
{ |
|
rc = LBER_DEFAULT; |
|
} |
|
#endif |
if ( j > 0 ) |
if ( j > 0 ) |
(*sss)[j] = NULL; |
(*sss)[j] = NULL; |
break; |
break; |
Line 483 va_dcl
|
Line 503 va_dcl
|
*bv = NULL; |
*bv = NULL; |
j = 0; |
j = 0; |
for ( tag = ber_first_element( ber, &len, &last ); |
for ( tag = ber_first_element( ber, &len, &last ); |
tag != LBER_DEFAULT && rc != LBER_DEFAULT; |
tag != LBER_DEFAULT && |
tag = ber_next_element( ber, &len, last ) ) { |
#ifdef LDAP_END_SEQORSET |
|
tag != LBER_END_SEQORSET && |
|
#endif |
|
rc != LBER_DEFAULT; |
|
tag = ber_next_element( ber, &len, last ) ) |
|
{ |
if ( *bv == NULL ) { |
if ( *bv == NULL ) { |
*bv = (struct berval **) malloc( |
*bv = (struct berval **) malloc( |
2 * sizeof(struct berval *) ); |
2 * sizeof(struct berval *) ); |
Line 495 va_dcl
|
Line 520 va_dcl
|
rc = ber_get_stringal( ber, &((*bv)[j]) ); |
rc = ber_get_stringal( ber, &((*bv)[j]) ); |
j++; |
j++; |
} |
} |
|
#ifdef LDAP_END_SEQORSET |
|
if (rc != LBER_DEFAULT && |
|
tag != LBER_END_SEQORSET ) |
|
{ |
|
rc = LBER_DEFAULT; |
|
} |
|
#endif |
if ( j > 0 ) |
if ( j > 0 ) |
(*bv)[j] = NULL; |
(*bv)[j] = NULL; |
break; |
break; |
Line 532 va_dcl
|
Line 564 va_dcl
|
void |
void |
ber_bvfree( struct berval *bv ) |
ber_bvfree( struct berval *bv ) |
{ |
{ |
|
#ifdef LBER_ASSERT |
|
assert(bv != NULL); /* bv damn better point to something */ |
|
#endif |
if ( bv->bv_val != NULL ) |
if ( bv->bv_val != NULL ) |
free( bv->bv_val ); |
free( bv->bv_val ); |
free( (char *) bv ); |
free( (char *) bv ); |
Line 542 ber_bvecfree( struct berval **bv )
|
Line 577 ber_bvecfree( struct berval **bv )
|
{ |
{ |
int i; |
int i; |
|
|
|
#ifdef LBER_ASSERT |
|
assert(bv != NULL); /* bv damn better point to something */ |
|
#endif |
for ( i = 0; bv[i] != NULL; i++ ) |
for ( i = 0; bv[i] != NULL; i++ ) |
ber_bvfree( bv[i] ); |
ber_bvfree( bv[i] ); |
free( (char *) bv ); |
free( (char *) bv ); |
Line 556 ber_bvdup( struct berval *bv )
|
Line 594 ber_bvdup( struct berval *bv )
|
== NULL ) { |
== NULL ) { |
return( NULL ); |
return( NULL ); |
} |
} |
|
|
|
if ( bv->bv_val == NULL ) { |
|
new->bv_val = NULL; |
|
new->bv_len = 0; |
|
return ( new ); |
|
} |
|
|
if ( (new->bv_val = (char *) malloc( bv->bv_len + 1 )) == NULL ) { |
if ( (new->bv_val = (char *) malloc( bv->bv_len + 1 )) == NULL ) { |
|
free( new ); |
return( NULL ); |
return( NULL ); |
} |
} |
|
|
SAFEMEMCPY( new->bv_val, bv->bv_val, (size_t) bv->bv_len ); |
SAFEMEMCPY( new->bv_val, bv->bv_val, (size_t) bv->bv_len ); |
new->bv_val[bv->bv_len] = '\0'; |
new->bv_val[bv->bv_len] = '\0'; |
new->bv_len = bv->bv_len; |
new->bv_len = bv->bv_len; |