fix segv with invalid url
authorMichael Wallner <mike@php.net>
Thu, 3 Apr 2008 13:25:03 +0000 (13:25 +0000)
committerMichael Wallner <mike@php.net>
Thu, 3 Apr 2008 13:25:03 +0000 (13:25 +0000)
http_request_object.c

index f9bbf5e018451225b350145b4cf89796a965bd7b..22930413027c6a90976fbf9d947a695d764c4c83 100644 (file)
@@ -549,12 +549,16 @@ static inline void _http_request_object_check_request_content_type(zval *this_pt
 STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ptr TSRMLS_DC)
 {
        STATUS status = SUCCESS;
+       char *url = http_absolute_url(Z_STRVAL_P(zend_read_property(THIS_CE, getThis(), ZEND_STRS("url")-1, 0 TSRMLS_CC)));
 
+       if (!url) {
+               return FAILURE;
+       }
+       
        http_request_reset(obj->request);
+       obj->request->url = url;
        HTTP_CHECK_CURL_INIT(obj->request->ch, http_curl_init(obj->request), return FAILURE);
        
-       obj->request->url = http_absolute_url(Z_STRVAL_P(zend_read_property(THIS_CE, getThis(), ZEND_STRS("url")-1, 0 TSRMLS_CC)));
-       
        switch (obj->request->meth = Z_LVAL_P(zend_read_property(THIS_CE, getThis(), ZEND_STRS("method")-1, 0 TSRMLS_CC)))
        {
                case HTTP_GET: