Fixed memory leak in SQLite3_Server

pull/4229/head
René Cannaò 3 years ago
parent 3453c0306f
commit c4ccfa65be

@ -1015,21 +1015,22 @@ static void *child_mysql(void *arg) {
}
}
sess->to_process=1;
// Get and set the client address before the sesion is processed.
union {
struct sockaddr_in in;
struct sockaddr_in6 in6;
} custom_sockaddr;
struct sockaddr *addr=(struct sockaddr *)malloc(sizeof(custom_sockaddr));
socklen_t addrlen=sizeof(custom_sockaddr);
memset(addr, 0, sizeof(custom_sockaddr));
sess->client_myds->client_addrlen=addrlen;
sess->client_myds->client_addr=addr;
int g_rc = getpeername(sess->client_myds->fd, addr, &addrlen);
if (g_rc == -1) {
proxy_error("'getpeername' failed with error: %d\n", g_rc);
if (sess->client_myds->client_addr == NULL) {
// Get and set the client address before the sesion is processed.
union {
struct sockaddr_in in;
struct sockaddr_in6 in6;
} custom_sockaddr;
struct sockaddr *addr=(struct sockaddr *)malloc(sizeof(custom_sockaddr));
socklen_t addrlen=sizeof(custom_sockaddr);
memset(addr, 0, sizeof(custom_sockaddr));
sess->client_myds->client_addrlen=addrlen;
sess->client_myds->client_addr=addr;
int g_rc = getpeername(sess->client_myds->fd, addr, &addrlen);
if (g_rc == -1) {
proxy_error("'getpeername' failed with error: %d\n", g_rc);
}
}
int rc=sess->handler();
if (rc==-1) goto __exit_child_mysql;
}

Loading…
Cancel
Save