diff options
| author | Moriyoshi Koizumi <moriyoshi@php.net> | 2010-12-22 10:25:33 +0000 |
|---|---|---|
| committer | Moriyoshi Koizumi <moriyoshi@php.net> | 2010-12-22 10:25:33 +0000 |
| commit | e8b15906675441af7dbe1d78c566d75eeeea944d (patch) | |
| tree | 506fa346f2b36132aff245544ea6b06d77f75162 /ext/exif/exif.c | |
| parent | 9b698dbceaceab67d3bb30777960e54789153cd5 (diff) | |
| download | php-git-e8b15906675441af7dbe1d78c566d75eeeea944d.tar.gz | |
- Fix build.
Diffstat (limited to 'ext/exif/exif.c')
| -rw-r--r-- | ext/exif/exif.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/ext/exif/exif.c b/ext/exif/exif.c index ccecc94e74..97a0a638e7 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -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); } |
