version 1.77, 2002/01/04 20:17:36
|
version 1.78, 2002/01/06 01:23:36
|
Line 1
|
Line 1
|
/* decode.c - ber input decoding routines */ |
/* decode.c - ber input decoding routines */ |
/* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.76 2002/01/03 19:04:31 kurt Exp $ */ |
/* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.77 2002/01/04 20:17:36 kurt Exp $ */ |
/* |
/* |
* Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. |
* Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
Line 44 ber_get_tag( BerElement *ber )
|
Line 44 ber_get_tag( BerElement *ber )
|
assert( ber != NULL ); |
assert( ber != NULL ); |
assert( LBER_VALID( ber ) ); |
assert( LBER_VALID( ber ) ); |
|
|
if ( ber_read( ber, (char *) &xbyte, 1 ) != 1 ) { |
if ( ber_pvt_ber_remaining( ber ) < 1 ) { |
return LBER_DEFAULT; |
return LBER_DEFAULT; |
} |
} |
|
|
|
if ( ber->ber_ptr == ber->ber_buf ) |
|
xbyte = *ber->ber_ptr; |
|
else |
|
xbyte = ber->ber_tag; |
|
ber->ber_ptr++; |
|
|
tag = xbyte; |
tag = xbyte; |
|
|
if ( (xbyte & LBER_BIG_TAG_MASK) != LBER_BIG_TAG_MASK ) { |
if ( (xbyte & LBER_BIG_TAG_MASK) != LBER_BIG_TAG_MASK ) { |
Line 146 ber_skip_tag( BerElement *ber, ber_len_t
|
Line 152 ber_skip_tag( BerElement *ber, ber_len_t
|
if( *len > (ber_len_t) ber_pvt_ber_remaining( ber ) ) { |
if( *len > (ber_len_t) ber_pvt_ber_remaining( ber ) ) { |
return LBER_DEFAULT; |
return LBER_DEFAULT; |
} |
} |
|
ber->ber_tag = *ber->ber_ptr; |
|
|
return tag; |
return tag; |
} |
} |
Line 161 ber_peek_tag(
|
Line 168 ber_peek_tag(
|
*/ |
*/ |
|
|
char *save; |
char *save; |
ber_tag_t tag; |
ber_tag_t tag, old; |
|
|
|
old = ber->ber_tag; |
save = ber->ber_ptr; |
save = ber->ber_ptr; |
tag = ber_skip_tag( ber, len ); |
tag = ber_skip_tag( ber, len ); |
ber->ber_ptr = save; |
ber->ber_ptr = save; |
|
ber->ber_tag = old; |
|
|
return tag; |
return tag; |
} |
} |
Line 213 ber_getnint(
|
Line 222 ber_getnint(
|
} else { |
} else { |
*num = 0; |
*num = 0; |
} |
} |
|
ber->ber_tag = *ber->ber_ptr; |
|
|
return len; |
return len; |
} |
} |
Line 271 ber_get_stringb(
|
Line 281 ber_get_stringb(
|
if ( (ber_len_t) ber_read( ber, buf, datalen ) != datalen ) { |
if ( (ber_len_t) ber_read( ber, buf, datalen ) != datalen ) { |
return LBER_DEFAULT; |
return LBER_DEFAULT; |
} |
} |
|
ber->ber_tag = *ber->ber_ptr; |
|
|
buf[datalen] = '\0'; |
buf[datalen] = '\0'; |
|
|
Line 423 ber_get_stringbv( BerElement *ber, struc
|
Line 434 ber_get_stringbv( BerElement *ber, struc
|
return LBER_DEFAULT; |
return LBER_DEFAULT; |
} |
} |
bv->bv_val[bv->bv_len] = '\0'; |
bv->bv_val[bv->bv_len] = '\0'; |
|
ber->ber_tag = *ber->ber_ptr; |
|
|
return tag; |
return tag; |
} |
} |
Line 499 ber_get_bitstringa(
|
Line 511 ber_get_bitstringa(
|
*buf = NULL; |
*buf = NULL; |
return LBER_DEFAULT; |
return LBER_DEFAULT; |
} |
} |
|
ber->ber_tag = *ber->ber_ptr; |
|
|
*blen = datalen * 8 - unusedbits; |
*blen = datalen * 8 - unusedbits; |
return tag; |
return tag; |
Line 520 ber_get_null( BerElement *ber )
|
Line 533 ber_get_null( BerElement *ber )
|
if ( len != 0 ) { |
if ( len != 0 ) { |
return LBER_DEFAULT; |
return LBER_DEFAULT; |
} |
} |
|
ber->ber_tag = *ber->ber_ptr; |
|
|
return( tag ); |
return( tag ); |
} |
} |
Line 558 ber_first_element(
|
Line 572 ber_first_element(
|
*last = NULL; |
*last = NULL; |
return LBER_DEFAULT; |
return LBER_DEFAULT; |
} |
} |
|
ber->ber_tag = *ber->ber_ptr; |
|
|
*last = ber->ber_ptr + *len; |
*last = ber->ber_ptr + *len; |
|
|
Line 743 ber_scanf ( BerElement *ber,
|
Line 758 ber_scanf ( BerElement *ber,
|
if ( (rc = ber_skip_tag( ber, &len )) == LBER_DEFAULT ) |
if ( (rc = ber_skip_tag( ber, &len )) == LBER_DEFAULT ) |
break; |
break; |
ber->ber_ptr += len; |
ber->ber_ptr += len; |
|
ber->ber_tag = *ber->ber_ptr; |
break; |
break; |
|
|
case '{': /* begin sequence */ |
case '{': /* begin sequence */ |