curl: fixed crashers in curl patch for system proxy

Change-Id: Ieb8e782eab9c9bde1d2099d8cc32eceef9f00002
This commit is contained in:
Cédric Bosdonnat
2013-01-21 18:32:27 +01:00
parent 5c4351eb98
commit c37b23e4c2

View File

@@ -52,7 +52,7 @@
#ifndef CURL_DISABLE_HTTP #ifndef CURL_DISABLE_HTTP
/* If proxy was not specified, we check for default proxy environment /* If proxy was not specified, we check for default proxy environment
@@ -4138,7 +4158,62 @@ static char *detect_proxy(struct connectdata *conn) @@ -4138,7 +4158,63 @@ static char *detect_proxy(struct connectdata *conn)
* For compatibility, the all-uppercase versions of these variables are * For compatibility, the all-uppercase versions of these variables are
* checked if the lowercase versions don't exist. * checked if the lowercase versions don't exist.
*/ */
@@ -71,7 +71,7 @@
+ ieNoProxy = wstrToCstr(ieProxyConfig->lpszProxyBypass); + ieNoProxy = wstrToCstr(ieProxyConfig->lpszProxyBypass);
+ +
+ /* Convert the ieNoProxy into a proper no_proxy value */ + /* Convert the ieNoProxy into a proper no_proxy value */
+ if(NULL != no_proxy) { + if(NULL != ieNoProxy) {
+ no_proxy = strdup(ieNoProxy); + no_proxy = strdup(ieNoProxy);
+ pos = strpbrk(no_proxy, "; "); + pos = strpbrk(no_proxy, "; ");
+ while(NULL != pos) { + while(NULL != pos) {
@@ -95,8 +95,9 @@
+ /* We found HTTP proxy value, then use it */ + /* We found HTTP proxy value, then use it */
+ proxy = strdup( tok + 5 ); + proxy = strdup( tok + 5 );
+ } + }
+ tok = strtok(NULL, ";");
+ } + }
+ while(NULL != strtok(NULL, ";")); + while(NULL != tok);
+ } + }
+ } + }
+ } + }
@@ -116,7 +117,7 @@
char proxy_env[128]; char proxy_env[128];
no_proxy=curl_getenv("no_proxy"); no_proxy=curl_getenv("no_proxy");
@@ -4189,9 +4264,9 @@ static char *detect_proxy(struct connectdata *conn) @@ -4189,9 +4265,9 @@ static char *detect_proxy(struct connectdata *conn)
} }
} /* if(!check_noproxy(conn->host.name, no_proxy)) - it wasn't specified } /* if(!check_noproxy(conn->host.name, no_proxy)) - it wasn't specified
non-proxy */ non-proxy */