Browse Source

Bugfix: Release memory allocated by prior stratum sockaddr extractions

Luke Dashjr 13 years ago
parent
commit
e31a3ab4fa
1 changed files with 2 additions and 1 deletions
  1. 2 1
      util.c

+ 2 - 1
util.c

@@ -828,7 +828,6 @@ bool extract_sockaddr(struct pool *pool, char *url)
 	struct addrinfo hints, *res;
 	int url_len, port_len = 0;
 
-	pool->sockaddr_url = url;
 	url_begin = strstr(url, "//");
 	if (!url_begin)
 		url_begin = url;
@@ -854,6 +853,7 @@ bool extract_sockaddr(struct pool *pool, char *url)
 	else
 		strcpy(port, "80");
 
+	free(pool->stratum_port);
 	pool->stratum_port = strdup(port);
 
 	memset(&hints, 0, sizeof(struct addrinfo));
@@ -867,6 +867,7 @@ bool extract_sockaddr(struct pool *pool, char *url)
 	}
 
 	pool->server = (struct sockaddr_in *)res->ai_addr;
+	free(pool->sockaddr_url);
 	pool->sockaddr_url = strdup(url_address);
 
 	return true;