mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-16 03:44:58 -05:00
Use LDAP_UTF8_CHARLEN2 to check shortest possible encoding
This commit is contained in:
parent
2d51ad52b3
commit
e21e900392
2 changed files with 7 additions and 7 deletions
|
|
@ -173,7 +173,7 @@ char * UTF8normalize(
|
|||
/* s[i] is non-ascii */
|
||||
/* convert everything up to next ascii to ucs-4 */
|
||||
while ( i < len ) {
|
||||
clen = LDAP_UTF8_CHARLEN( s + i );
|
||||
clen = LDAP_UTF8_CHARLEN2( s + i, clen );
|
||||
if ( clen == 0 ) {
|
||||
free( ucs );
|
||||
free( out );
|
||||
|
|
|
|||
|
|
@ -471,28 +471,28 @@ UTF8StringValidate(
|
|||
|
||||
for( count = in->bv_len; count > 0; count-=len, u+=len ) {
|
||||
/* get the length indicated by the first byte */
|
||||
len = LDAP_UTF8_CHARLEN( u );
|
||||
len = LDAP_UTF8_CHARLEN2( u, len );
|
||||
|
||||
/* very basic checks */
|
||||
switch( len ) {
|
||||
case 6:
|
||||
if( u[5] >= 0xFE ) {
|
||||
if( (u[5] & 0xC0) != 0x80 ) {
|
||||
return LDAP_INVALID_SYNTAX;
|
||||
}
|
||||
case 5:
|
||||
if( u[4] >= 0xFE ) {
|
||||
if( (u[4] & 0xC0) != 0x80 ) {
|
||||
return LDAP_INVALID_SYNTAX;
|
||||
}
|
||||
case 4:
|
||||
if( u[3] >= 0xFE ) {
|
||||
if( (u[3] & 0xC0) != 0x80 ) {
|
||||
return LDAP_INVALID_SYNTAX;
|
||||
}
|
||||
case 3:
|
||||
if( u[2] >= 0xFE ) {
|
||||
if( (u[2] & 0xC0 )!= 0x80 ) {
|
||||
return LDAP_INVALID_SYNTAX;
|
||||
}
|
||||
case 2:
|
||||
if( u[1] >= 0xFE ) {
|
||||
if( (u[1] & 0xC0) != 0x80 ) {
|
||||
return LDAP_INVALID_SYNTAX;
|
||||
}
|
||||
case 1:
|
||||
|
|
|
|||
Loading…
Reference in a new issue