- fix possible mem-leak in http_absolute_uri()
[m6w6/ext-http] / http_url_api.c
index 288abe445b1f88067777a33fa3dc90101923f2c1..d3f32e7aff687074b6c81e3d79dfe84e1b5be30a 100644 (file)
 #ifdef HAVE_CONFIG_H
 #      include "config.h"
 #endif
-
 #include "php.h"
+
+#include "SAPI.h"
 #include "zend_ini.h"
 #include "php_output.h"
 #include "ext/standard/url.h"
 
-#include "SAPI.h"
-
-#include "phpstr/phpstr.h"
-
 #include "php_http.h"
 #include "php_http_api.h"
 #include "php_http_url_api.h"
 #include "php_http_std_defs.h"
 
+#include "phpstr/phpstr.h"
+
 #ifdef PHP_WIN32
 #      include <winsock2.h>
 #elif defined(HAVE_NETDB_H)
@@ -51,10 +50,10 @@ PHP_HTTP_API char *_http_absolute_url_ex(
 #if defined(PHP_WIN32) || defined(HAVE_NETDB_H)
        struct servent *se;
 #endif
-       php_url *purl, furl = {NULL};
+       php_url *purl = NULL, furl;
        size_t full_len = 0;
        zval *zhost = NULL;
-       char *scheme = NULL, *uri, *URL = ecalloc(1, HTTP_URI_MAXLEN + 1);
+       char *scheme = NULL, *uri, *URL;
 
        if ((!url || !url_len) && (
                        (!(url = SG(request_info).request_uri)) ||
@@ -63,6 +62,7 @@ PHP_HTTP_API char *_http_absolute_url_ex(
                return NULL;
        }
 
+       URL = ecalloc(1, HTTP_URI_MAXLEN + 1);
        uri = estrndup(url, url_len);
        if (!(purl = php_url_parse(uri))) {
                http_error_ex(E_WARNING, HTTP_E_PARSE, "Could not parse supplied URL: %s", url);