X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_url_api.c;h=7bacffc3e73e26120c8ddbc58e7f52ec1df63eb4;hp=575c4f57a856b63f42a06623f9ec7944b609101e;hb=6e9ea0a647db55213dd230145c35a419d7abde4d;hpb=d1121da9cad0383aa661a8d0720dd598e448400c diff --git a/http_url_api.c b/http_url_api.c index 575c4f5..7bacffc 100644 --- a/http_url_api.c +++ b/http_url_api.c @@ -27,8 +27,6 @@ #include "php_http_api.h" #include "php_http_url_api.h" -ZEND_EXTERN_MODULE_GLOBALS(http); - PHP_HTTP_API char *_http_absolute_url(const char *url TSRMLS_DC) { char *abs = estrdup(url); @@ -39,6 +37,8 @@ PHP_HTTP_API char *_http_absolute_url(const char *url TSRMLS_DC) if (purl) { http_build_url(purl, NULL, NULL, &abs, NULL); php_url_free(purl); + } else { + http_error_ex(HE_WARNING, HTTP_E_URL, "Could not parse URL (%s)", url); } return abs; @@ -299,7 +299,7 @@ PHP_HTTP_API STATUS _http_urlencode_hash_recursive(HashTable *ht, phpstr *str, c return FAILURE; } } else { - zval *cpy, *val = convert_to_type_ex(IS_STRING, *data, &cpy); + zval *val = zval_copy(IS_STRING, *data); if (PHPSTR_LEN(str)) { phpstr_append(str, arg_sep, arg_sep_len); @@ -307,7 +307,7 @@ PHP_HTTP_API STATUS _http_urlencode_hash_recursive(HashTable *ht, phpstr *str, c phpstr_append(str, PHPSTR_VAL(&new_prefix), PHPSTR_LEN(&new_prefix)); phpstr_appends(str, "="); - if (Z_STRLEN_P(val)) { + if (Z_STRLEN_P(val) && Z_STRVAL_P(val)) { char *encoded_val; int encoded_len; @@ -316,11 +316,8 @@ PHP_HTTP_API STATUS _http_urlencode_hash_recursive(HashTable *ht, phpstr *str, c efree(encoded_val); } - if (cpy) { - zval_ptr_dtor(&cpy); - } + zval_free(&val); } - phpstr_dtor(&new_prefix); } return SUCCESS;