From f3f5d28332783731fdc096b1a8ca159e517d002d Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Jun 18 2018 18:24:58 +0000 Subject: Ticket 49788 - Fixing 4-byte UTF-8 character validation Description: Advance string as needed https://pagure.io/389-ds-base/issue/49788 --- diff --git a/ldap/servers/plugins/syntaxes/validate.c b/ldap/servers/plugins/syntaxes/validate.c index cfdb17f..ea50d83 100644 --- a/ldap/servers/plugins/syntaxes/validate.c +++ b/ldap/servers/plugins/syntaxes/validate.c @@ -270,12 +270,14 @@ int utf8char_validate( * the second byte. */ if (*p == '\xF0') { /* The next byte must be %x90-BF. */ + p++; if (((unsigned char)*p < (unsigned char)'\x90') || ((unsigned char)*p > (unsigned char)'\xBF')) { rc = 1; goto exit; } } else if (*p == '\xF4') { /* The next byte must be %x80-BF. */ + p++; if (((unsigned char)*p < (unsigned char)'\x80') || ((unsigned char)*p > (unsigned char)'\xBF')) { rc = 1; goto exit;