X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_api.c;h=6f6c5d63993175d7fbc080c12461c6d64307ddf8;hb=6fc78f4b8ea8a34a40f06985648822fbaa7ffb30;hp=0bb6cf22a9b6ae65a7f089cf902f64a406d2d44d;hpb=edc84b40eb2c5be04492fa98fec5833a030782eb;p=m6w6%2Fext-http diff --git a/http_api.c b/http_api.c index 0bb6cf2..6f6c5d6 100644 --- a/http_api.c +++ b/http_api.c @@ -296,10 +296,10 @@ PHP_HTTP_API zval *_http_get_server_var_ex(const char *key, size_t key_size, zen zval **hsv; zval **var; - if (SUCCESS != zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **) &hsv)) { + if ((SUCCESS != zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **) &hsv)) || (Z_TYPE_PP(hsv) != IS_ARRAY)) { return NULL; } - if (SUCCESS != zend_hash_find(Z_ARRVAL_PP(hsv), (char *) key, key_size, (void **) &var)) { + if ((SUCCESS != zend_hash_find(Z_ARRVAL_PP(hsv), (char *) key, key_size, (void **) &var)) || (Z_TYPE_PP(var) != IS_STRING)) { return NULL; } if (check && !(Z_STRVAL_PP(var) && Z_STRLEN_PP(var))) {