moriyoshi Fri Sep 12 23:34:45 2008 UTC Modified files: /php-src/ext/mbstring mbstring.c Log: * Use memcmp() for binary safety. http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.298&r2=1.299&diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.298 php-src/ext/mbstring/mbstring.c:1.299 --- php-src/ext/mbstring/mbstring.c:1.298 Wed Sep 10 23:19:50 2008 +++ php-src/ext/mbstring/mbstring.c Fri Sep 12 23:34:45 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mbstring.c,v 1.298 2008/09/10 23:19:50 iliaa Exp $ */ +/* $Id: mbstring.c,v 1.299 2008/09/12 23:34:45 moriyoshi Exp $ */ /* * PHP 4 Multibyte String module "mbstring" @@ -4527,14 +4527,12 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to create converter"); RETURN_FALSE; } - mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode)); - mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar)); + mbfl_buffer_converter_illegal_mode(convd, MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE); + mbfl_buffer_converter_illegal_substchar(convd, 0); /* initialize string */ - mbfl_string_init(&string); + mbfl_string_init_set(&string, mbfl_no_language_neutral, no_encoding); mbfl_string_init(&result); - string.no_encoding = no_encoding; - string.no_language = MBSTRG(language); string.val = (unsigned char *)var; string.len = var_len; @@ -4542,17 +4540,12 @@ illegalchars = mbfl_buffer_illegalchars(convd); mbfl_buffer_converter_delete(convd); + RETVAL_FALSE; if (ret != NULL) { - MBSTRG(illegalchars) += illegalchars; - if (illegalchars == 0 && strncmp((char *)string.val, (char *)ret->val, string.len) == 0) { - efree(ret->val); - RETURN_TRUE; - } else { - efree(ret->val); - RETURN_FALSE; + if (illegalchars == 0 && string.len == result.len && memcmp(string.val, result.val, string.len) == 0) { + RETVAL_TRUE; } - } else { - RETURN_FALSE; + mbfl_string_clear(&result); } } /* }}} */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php