X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_api.c;h=6f6c5d63993175d7fbc080c12461c6d64307ddf8;hp=0bb6cf22a9b6ae65a7f089cf902f64a406d2d44d;hb=d4738dfa25feeba82269ac47f7f4b3054da7fe42;hpb=c0eca50e14a66bb29748b15e2999ccc83e67f506 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))) {