]> granicus.if.org Git - php/commitdiff
- Fix build.
authorMoriyoshi Koizumi <moriyoshi@php.net>
Wed, 22 Dec 2010 10:25:33 +0000 (10:25 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Wed, 22 Dec 2010 10:25:33 +0000 (10:25 +0000)
ext/exif/exif.c

index ccecc94e741c74d6a792805508d8460b06096b88..97a0a638e77713ed9656a9c3223d15f279a2221d 100644 (file)
@@ -166,18 +166,30 @@ ZEND_DECLARE_MODULE_GLOBALS(exif)
 
 ZEND_INI_MH(OnUpdateEncode)
 {
-       if (new_value && strlen(new_value) && !zend_multibyte_check_encoding_list(new_value TSRMLS_CC)) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal encoding ignored: '%s'", new_value);
-               return FAILURE;
+       if (new_value && new_value_length) {
+               const zend_encoding **return_list;
+               size_t return_size;
+               if (FAILURE == zend_multibyte_parse_encoding_list(new_value, new_value_length,
+       &return_list, &return_size, 0 TSRMLS_CC)) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal encoding ignored: '%s'", new_value);
+                       return FAILURE;
+               }
+               efree(return_list);
        }
        return OnUpdateString(entry, new_value, new_value_length, mh_arg1, mh_arg2, mh_arg3, stage TSRMLS_CC);
 }
 
 ZEND_INI_MH(OnUpdateDecode)
 {
-       if (!zend_multibyte_check_encoding_list(new_value TSRMLS_CC)) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal encoding ignored: '%s'", new_value);
-               return FAILURE;
+       if (new_value) {
+               const zend_encoding **return_list;
+               size_t return_size;
+               if (FAILURE == zend_multibyte_parse_encoding_list(new_value, new_value_length,
+       &return_list, &return_size, 0 TSRMLS_CC)) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal encoding ignored: '%s'", new_value);
+                       return FAILURE;
+               }
+               efree(return_list);
        }
        return OnUpdateString(entry, new_value, new_value_length, mh_arg1, mh_arg2, mh_arg3, stage TSRMLS_CC);
 }