mruby-string-ext/string.c (utf8code): max length of UTF-8 is 4 bytes.

It used to be 6 bytes in RFC2279 but overridden by new RFC3629.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2022-05-28 07:14:09 +09:00
parent 82b87be4df
commit d55a152b3d
-10
View File
@@ -1011,16 +1011,6 @@ utf8code(unsigned char* p, mrb_int limit)
if (len == 4)
return ((p[0] & 0x07) << 18) + ((p[1] & 0x3f) << 12)
+ ((p[2] & 0x3f) << 6) + (p[3] & 0x3f);
if ((p[4] & 0xc0) == 0x80) {
if (len == 5)
return ((p[0] & 0x03) << 24) + ((p[1] & 0x3f) << 18)
+ ((p[2] & 0x3f) << 12) + ((p[3] & 0x3f) << 6)
+ (p[4] & 0x3f);
if ((p[5] & 0xc0) == 0x80 && len == 6)
return ((p[0] & 0x01) << 30) + ((p[1] & 0x3f) << 24)
+ ((p[2] & 0x3f) << 18) + ((p[3] & 0x3f) << 12)
+ ((p[4] & 0x3f) << 6) + (p[5] & 0x3f);
}
}
}
}