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

Reply via email to