From 5906c97ff993425c43817c3cabada0a2d7046e56 Mon Sep 17 00:00:00 2001 From: henri Date: Mon, 22 Apr 2013 19:33:37 +0000 Subject: [PATCH] Enfore node=NULL on error. --- nsock/src/nsock_proxy.c | 6 ++++-- nsock/src/proxy_http.c | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/nsock/src/nsock_proxy.c b/nsock/src/nsock_proxy.c index a6ba4c358..68d36c21c 100644 --- a/nsock/src/nsock_proxy.c +++ b/nsock/src/nsock_proxy.c @@ -361,7 +361,7 @@ static struct proxy_node *proxy_node_new(char *proxystr) { pxop = ProxyBackends[i]; if (strncasecmp(proxystr, pxop->prefix, strlen(pxop->prefix)) == 0) { - struct proxy_node *proxy; + struct proxy_node *proxy = NULL; struct uri uri; memset(&uri, 0x00, sizeof(struct uri)); @@ -369,7 +369,9 @@ static struct proxy_node *proxy_node_new(char *proxystr) { if (parse_uri(proxystr, &uri) < 0) break; - pxop->node_new(&proxy, &uri); + if (pxop->node_new(&proxy, &uri) < 0) + proxy = NULL; + uri_free(&uri); return proxy; diff --git a/nsock/src/proxy_http.c b/nsock/src/proxy_http.c index 419396c81..32cffb3ac 100644 --- a/nsock/src/proxy_http.c +++ b/nsock/src/proxy_http.c @@ -86,6 +86,7 @@ int proxy_http_node_new(struct proxy_node **node, const struct uri *uri) { if (proxy_resolve(uri->host, (struct sockaddr *)&proxy->ss, &proxy->sslen) < 0) { free(proxy); + *node = NULL; return -1; }