summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorC├ędric Bosdonnat <cedric.bosdonnat@free.fr>2013-01-21 18:32:27 +0100
committerPetr Mladek <pmladek@suse.cz>2013-01-22 10:27:07 +0000
commitfb286e44b862c12d0e84632f9d0a9ae6fd3ea2c1 (patch)
treeb117e2e879c61784a195dd49b74e7733dd5499a5
parent8aaf1142cdfda96094ee363cd7477a97021bcb76 (diff)
curl: fixed crashers in curl patch for system proxy
Change-Id: Ieb8e782eab9c9bde1d2099d8cc32eceef9f00002 Reviewed-on: https://gerrit.libreoffice.org/1802 Reviewed-by: Petr Mladek <pmladek@suse.cz> Tested-by: Petr Mladek <pmladek@suse.cz>
-rw-r--r--curl/curl-7.26.0_win-proxy.patch37
1 files changed, 21 insertions, 16 deletions
diff --git a/curl/curl-7.26.0_win-proxy.patch b/curl/curl-7.26.0_win-proxy.patch
index 61badc78feec..e3beb4004885 100644
--- a/curl/curl-7.26.0_win-proxy.patch
+++ b/curl/curl-7.26.0_win-proxy.patch
@@ -52,7 +52,7 @@
#ifndef CURL_DISABLE_HTTP
/* If proxy was not specified, we check for default proxy environment
-@@ -4138,7 +4158,58 @@ 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
* checked if the lowercase versions don't exist.
*/
@@ -71,29 +71,34 @@
+ ieNoProxy = wstrToCstr(ieProxyConfig->lpszProxyBypass);
+
+ /* Convert the ieNoProxy into a proper no_proxy value */
-+ no_proxy = strdup(ieNoProxy);
-+ pos = strpbrk(no_proxy, "; ");
-+ while(NULL != pos) {
-+ no_proxy[pos-no_proxy] = ',';
++ if(NULL != ieNoProxy) {
++ no_proxy = strdup(ieNoProxy);
+ pos = strpbrk(no_proxy, "; ");
++ while(NULL != pos) {
++ no_proxy[pos-no_proxy] = ',';
++ pos = strpbrk(no_proxy, "; ");
++ }
+ }
+
+ if(!check_noproxy(conn->host.name, no_proxy)) {
+ /* Look for the http proxy setting */
+ char* tok;
+
-+ tok = strtok(ieProxy, ";");
-+ if(strchr(tok, '=') == NULL) {
-+ proxy = strdup(ieProxy);
-+ }
-+ else {
-+ do {
-+ if(strncmp(tok, "http=", 5) == 0) {
-+ /* We found HTTP proxy value, then use it */
-+ proxy = strdup( tok + 5 );
++ if(NULL != ieProxy) {
++ tok = strtok(ieProxy, ";");
++ if(strchr(tok, '=') == NULL) {
++ proxy = strdup(ieProxy);
++ }
++ else {
++ do {
++ if(strncmp(tok, "http=", 5) == 0) {
++ /* We found HTTP proxy value, then use it */
++ proxy = strdup( tok + 5 );
++ }
++ tok = strtok(NULL, ";");
+ }
++ while(NULL != tok);
+ }
-+ while(NULL != strtok(NULL, ";"));
+ }
+ }
+
@@ -112,7 +117,7 @@
char proxy_env[128];
no_proxy=curl_getenv("no_proxy");
-@@ -4189,9 +4259,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
non-proxy */