|
@@ -1058,6 +1058,7 @@ connection_listener_new(const struct sockaddr *listensockaddr,
|
|
|
if (bind(s, listensockaddr, (socklen_t)sizeof(struct sockaddr_un)) == -1) {
|
|
|
log_warn(LD_NET,"Bind to %s failed: %s.", address,
|
|
|
tor_socket_strerror(tor_socket_errno(s)));
|
|
|
+ tor_close_socket(s);
|
|
|
goto err;
|
|
|
}
|
|
|
#ifdef HAVE_PWD_H
|
|
@@ -1066,9 +1067,11 @@ connection_listener_new(const struct sockaddr *listensockaddr,
|
|
|
if (pw == NULL) {
|
|
|
log_warn(LD_NET,"Unable to chown() %s socket: user %s not found.",
|
|
|
address, options->User);
|
|
|
+ tor_close_socket(s);
|
|
|
} else if (chown(address, pw->pw_uid, pw->pw_gid) < 0) {
|
|
|
log_warn(LD_NET,"Unable to chown() %s socket: %s.",
|
|
|
address, strerror(errno));
|
|
|
+ tor_close_socket(s);
|
|
|
goto err;
|
|
|
}
|
|
|
}
|
|
@@ -1707,6 +1710,7 @@ connection_read_https_proxy_response(connection_t *conn)
|
|
|
tor_free(headers);
|
|
|
return -1;
|
|
|
}
|
|
|
+ tor_free(headers);
|
|
|
if (!reason) reason = tor_strdup("[no reason given]");
|
|
|
|
|
|
if (status_code == 200) {
|