mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-02-05 13:40:08 +08:00
ITS#2365 - preserve internal ber_tag as well as ber_ptr for rewinding.
This commit is contained in:
parent
1277616c40
commit
066e3310a9
@ -316,13 +316,12 @@ ber_get_stringbvl( bgbvr *b, ber_len_t *rlen )
|
||||
struct berval bv, *bvp = NULL;
|
||||
|
||||
orig = b->ber->ber_ptr;
|
||||
tag = b->ber->ber_tag;
|
||||
|
||||
tag = ber_first_element( b->ber, &len, &last );
|
||||
if ( tag != LBER_DEFAULT ) {
|
||||
if ( ber_first_element( b->ber, &len, &last ) != LBER_DEFAULT ) {
|
||||
for ( ; b->ber->ber_ptr < last; i++ )
|
||||
{
|
||||
tag = ber_skip_tag( b->ber, &len );
|
||||
if (tag == LBER_DEFAULT) break;
|
||||
if (ber_skip_tag( b->ber, &len ) == LBER_DEFAULT) break;
|
||||
b->ber->ber_ptr += len;
|
||||
}
|
||||
}
|
||||
@ -366,6 +365,7 @@ ber_get_stringbvl( bgbvr *b, ber_len_t *rlen )
|
||||
break;
|
||||
}
|
||||
b->ber->ber_ptr = orig;
|
||||
b->ber->ber_tag = tag;
|
||||
ber_skip_tag( b->ber, &len );
|
||||
|
||||
for (n=0; n<i; n++)
|
||||
|
Loading…
Reference in New Issue
Block a user