diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2015-03-03 10:19:12 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2015-03-03 10:19:12 +0300 |
| commit | dd50ed8a34d9d04c7f3b532e112be0453920c3a5 (patch) | |
| tree | e7dfc73a3f2c9c5c12b447d4dd93eebd129b3bbb /ext/soap/php_encoding.c | |
| parent | a64e12e2a12e7a8bd98ed64232dcaa8c510c3978 (diff) | |
| parent | 26827a011186ebb0c0cbabe588e7717caf4d4327 (diff) | |
| download | php-git-dd50ed8a34d9d04c7f3b532e112be0453920c3a5.tar.gz | |
Merge branch 'PHP-5.6'
* PHP-5.6:
Added type checks
Fixed bug #67741 (auto_prepend_file messes up __LINE__)
Check variable type before its usage as IS_ARRAY.
Fixed a bug that header value is not terminated by '\0' when accessed through getenv().
Conflicts:
ext/soap/php_encoding.c
ext/soap/php_http.c
ext/soap/soap.c
Diffstat (limited to 'ext/soap/php_encoding.c')
| -rw-r--r-- | ext/soap/php_encoding.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 3ac5a7bad4..9866d94c3f 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -3514,18 +3514,21 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type) Z_OBJCE_P(tmp) == soap_var_class_entry) { zval *ztype; - if ((ztype = zend_hash_str_find(Z_OBJPROP_P(tmp), "enc_type", sizeof("enc_type")-1)) == NULL) { + if ((ztype = zend_hash_str_find(Z_OBJPROP_P(tmp), "enc_type", sizeof("enc_type")-1)) == NULL || + Z_TYPE_P(ztype) != IS_LONG) { soap_error0(E_ERROR, "Encoding: SoapVar has no 'enc_type' property"); } cur_type = Z_LVAL_P(ztype); - if ((ztype = zend_hash_str_find(Z_OBJPROP_P(tmp), "enc_stype", sizeof("enc_stype")-1)) != NULL) { + if ((ztype = zend_hash_str_find(Z_OBJPROP_P(tmp), "enc_stype", sizeof("enc_stype")-1)) != NULL && + Z_TYPE_P(ztype) == IS_STRING) { cur_stype = Z_STRVAL_P(ztype); } else { cur_stype = NULL; } - if ((ztype = zend_hash_str_find(Z_OBJPROP_P(tmp), "enc_ns", sizeof("enc_ns")-1)) != NULL) { + if ((ztype = zend_hash_str_find(Z_OBJPROP_P(tmp), "enc_ns", sizeof("enc_ns")-1)) != NULL && + Z_TYPE_P(ztype) == IS_STRING) { cur_ns = Z_STRVAL_P(ztype); } else { cur_ns = NULL; |
