A very basic UTF-8 check

This commit is contained in:
Kurt Zeilenga 2002-01-15 04:38:05 +00:00
parent 19f3ba216f
commit 5a378a5ce8

View file

@ -473,8 +473,36 @@ UTF8StringValidate(
/* get the length indicated by the first byte */
len = LDAP_UTF8_CHARLEN( u );
/* should not be zero */
if( len == 0 ) return LDAP_INVALID_SYNTAX;
/* very basic checks */
switch( len ) {
case 6:
if( u[5] >= 0xFE ) {
return LDAP_INVALID_SYNTAX;
}
case 5:
if( u[4] >= 0xFE ) {
return LDAP_INVALID_SYNTAX;
}
case 4:
if( u[3] >= 0xFE ) {
return LDAP_INVALID_SYNTAX;
}
case 3:
if( u[2] >= 0xFE ) {
return LDAP_INVALID_SYNTAX;
}
case 2:
if( u[1] >= 0xFE ) {
return LDAP_INVALID_SYNTAX;
}
case 1:
if( u[0] >= 0xFE ) {
return LDAP_INVALID_SYNTAX;
}
break;
default:
return LDAP_INVALID_SYNTAX;
}
/* make sure len corresponds with the offset
to the next character */