mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-28 03:33:42 +00:00
make sure to initialize variables
This commit is contained in:
@@ -106,7 +106,6 @@ struct remote *connect_to_remote(char *remote_host, char *remote_port, int timeo
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
// initilize remote socks
|
||||
sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
|
||||
if (sockfd < 0) {
|
||||
@@ -274,6 +273,12 @@ static void server_send_cb (EV_P_ ev_io *w, int revents) {
|
||||
struct server *server = server_send_ctx->server;
|
||||
struct remote *remote = server->remote;
|
||||
|
||||
if (remote == NULL) {
|
||||
LOGE("invalid server.");
|
||||
close_and_free_server(EV_A_ server);
|
||||
return;
|
||||
}
|
||||
|
||||
if (server->buf_len == 0) {
|
||||
// close and free
|
||||
close_and_free_remote(EV_A_ remote);
|
||||
@@ -404,6 +409,12 @@ static void remote_send_cb (EV_P_ ev_io *w, int revents) {
|
||||
struct remote *remote = remote_send_ctx->remote;
|
||||
struct server *server = remote->server;
|
||||
|
||||
if (server == NULL) {
|
||||
LOGE("invalid server.");
|
||||
close_and_free_remote(EV_A_ remote);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!remote_send_ctx->connected) {
|
||||
|
||||
struct sockaddr_storage addr;
|
||||
@@ -493,6 +504,7 @@ struct remote* new_remote(int fd, int timeout) {
|
||||
remote->send_ctx->remote = remote;
|
||||
remote->send_ctx->connected = 0;
|
||||
remote->buf_len = 0;
|
||||
remote->server = NULL;
|
||||
return remote;
|
||||
}
|
||||
|
||||
@@ -545,6 +557,7 @@ struct server* new_server(int fd) {
|
||||
server->d_ctx = NULL;
|
||||
}
|
||||
server->buf_len = 0;
|
||||
server->remote = NULL;
|
||||
return server;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user