version 1.52, 2000/06/05 17:22:22
|
version 1.53, 2000/07/26 21:32:39
|
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.51 2000/05/14 01:38:27 kurt Exp $ */ |
/* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.52 2000/06/05 17:22:22 kurt Exp $ */ |
/* |
/* |
* Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. |
* Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
Line 136 ber_skip_tag( BerElement *ber, ber_len_t
|
Line 136 ber_skip_tag( BerElement *ber, ber_len_t
|
|
|
ber_tag_t |
ber_tag_t |
ber_peek_tag( |
ber_peek_tag( |
BerElement *ber_in, |
BerElement *ber, |
ber_len_t *len ) |
ber_len_t *len ) |
{ |
{ |
ber_tag_t tag; |
/* |
BerElement *ber; |
* This implementation assumes ber_skip_tag() only |
|
* modifies ber_ptr field of the BerElement. |
assert( ber_in != NULL ); |
*/ |
assert( BER_VALID( ber_in ) ); |
|
|
|
*len = 0; |
|
|
|
ber = ber_dup( ber_in ); |
|
|
|
if( ber == NULL ) { |
|
return LBER_ERROR; |
|
} |
|
|
|
assert( BER_VALID( ber ) ); |
char *save; |
|
ber_tag_t tag; |
|
|
|
save = ber->ber_ptr; |
tag = ber_skip_tag( ber, len ); |
tag = ber_skip_tag( ber, len ); |
|
ber->ber_ptr = save; |
|
|
ber_free( ber, 0 ); |
return tag; |
return( tag ); |
|
} |
} |
|
|
static ber_len_t |
static ber_len_t |