|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2003-05-13 15:44 UTC] moriyoshi@php.net
[2003-05-13 15:48 UTC] moriyoshi@php.net
[2003-05-15 09:21 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 01 03:00:01 2025 UTC |
This code causes a segfault both on Linux and Win32 builds. <?php function utf8IsValidString($AStr) { $ptrASCII = '[\x00-\x7F]'; $ptr2Octet = '[\xC2-\xDF][\x80-\xBF]'; $ptr3Octet = '[\xE0-\xEF][\x80-\xBF]{2}'; $ptr4Octet = '[\xF0-\xF4][\x80-\xBF]{3}'; $ptr5Octet = '[\xF8-\xFB][\x80-\xBF]{4}'; $ptr6Octet = '[\xFC-\xFD][\x80-\xBF]{5}'; return preg_match("/^($ptrASCII|$ptr2Octet|$ptr3Octet|$ptr4Octet|$ptr5Octet|$ptr6Octet)*$/s", $AStr); } // read text $handle = fopen('utf8text.txt', 'r'); $stat = fstat($handle); $str = fread($handle, $stat['size']); fclose($handle); // execute PCRE match var_dump(utf8IsValidString("some short text \xC4\xBE\xC5\xA1")); // ok var_dump(utf8IsValidString($str)); // segfault ?> This code including data file to reproduce bug can be found here: http://www.omikron.sk/downloads/pcre_crash.tar