diff --git a/NEWS b/NEWS index 6e6edcf1e90..2726658215d 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,10 @@ PHP NEWS - IMAP: . Fixed bug #72852 (imap_mail null dereference). (Anatol) +- Intl: + . Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF + sequence). (cmb) + - OCI8 . Fixed invalid handle error with Implicit Result Sets. (Chris Jones) . Fixed bug #72524 (Binding null values triggers ORA-24816 error). (Chris Jones) diff --git a/ext/intl/grapheme/grapheme_util.c b/ext/intl/grapheme/grapheme_util.c index b590631c723..020d0d6ef93 100644 --- a/ext/intl/grapheme/grapheme_util.c +++ b/ext/intl/grapheme/grapheme_util.c @@ -223,7 +223,7 @@ zend_long grapheme_ascii_check(const unsigned char *day, size_t len) { int ret_len = len; while ( len-- ) { - if ( *day++ > 0x7f ) + if ( *day++ > 0x7f || (*day == '\n' && *(day - 1) == '\r') ) return -1; } diff --git a/ext/intl/tests/bug65732.phpt b/ext/intl/tests/bug65732.phpt new file mode 100644 index 00000000000..b49f884ee42 --- /dev/null +++ b/ext/intl/tests/bug65732.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #65732 (grapheme_*() is not Unicode compliant on CR LF sequence) +--SKIPIF-- + +--FILE-- + +==DONE== +--EXPECT-- +int(1) +string(7) "ef +ghi" +int(2) +==DONE==