moriyoshi Fri Sep 12 23:35:01 2008 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/mbstring mbstring.c
Log:
- MFH: use memcmp() for binary safety.
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.224.2.22.2.25.2.32&r2=1.224.2.22.2.25.2.33&diff_format=u
Index: php-src/ext/mbstring/mbstring.c
diff -u php-src/ext/mbstring/mbstring.c:1.224.2.22.2.25.2.32
php-src/ext/mbstring/mbstring.c:1.224.2.22.2.25.2.33
--- php-src/ext/mbstring/mbstring.c:1.224.2.22.2.25.2.32 Wed Sep 10
23:19:38 2008
+++ php-src/ext/mbstring/mbstring.c Fri Sep 12 23:35:01 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.224.2.22.2.25.2.32 2008/09/10 23:19:38 iliaa Exp $ */
+/* $Id: mbstring.c,v 1.224.2.22.2.25.2.33 2008/09/12 23:35:01 moriyoshi Exp $
*/
/*
* PHP 4 Multibyte String module "mbstring"
@@ -4666,14 +4666,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;
@@ -4681,17 +4679,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