From: Howard Chu Date: Thu, 24 Apr 2003 03:59:45 +0000 (+0000) Subject: Fix multi-byte tag parsing X-Git-Tag: OPENLDAP_REL_ENG_2_2_0ALPHA~259 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b6111d793ea17b79a5cb544d05c39ea63bdc504b;p=openldap Fix multi-byte tag parsing --- diff --git a/libraries/liblber/io.c b/libraries/liblber/io.c index c618d0b286..4928dba088 100644 --- a/libraries/liblber/io.c +++ b/libraries/liblber/io.c @@ -530,8 +530,10 @@ ber_get_next( for (i=1; (char *)pber_rwptr; i++,p++) { tag <<= 8; tag |= *p; - if (!(*p & LBER_MORE_TAG_MASK)) + if (!(*p & LBER_MORE_TAG_MASK)) { + p++; break; + } /* Is the tag too big? */ if (i == sizeof(ber_tag_t)-1) { errno = ERANGE; @@ -542,7 +544,6 @@ ber_get_next( if ((char *)p == ber->ber_rwptr) { return LBER_DEFAULT; } - p++; } ber->ber_tag = tag; ber->ber_ptr = (char *)p;