diff --git a/src/server/net.c b/src/server/net.c index eb2c36c4b38043f17ba15030980f9e0fdfadcb59..f9f70a6b0a90378ce55c0d731fba09e5642ae3b9 100644 --- a/src/server/net.c +++ b/src/server/net.c @@ -96,6 +96,13 @@ static gchar *net_get_host_string(GSocketConnection *con) GInetAddress *iaddr; + if (!G_IS_SOCKET_CONNECTION(con)) + return NULL; + + if (!g_socket_connection_is_connected(con)) + return NULL; + + addr = g_socket_connection_get_remote_address(con, NULL); iaddr = g_inet_socket_address_get_address(G_INET_SOCKET_ADDRESS(addr)); @@ -485,6 +492,7 @@ static gboolean net_send_internal(struct con_data *c, const char *pkt, gsize nby if (!G_IS_SOCKET_CONNECTION(c->con)) { g_warning("%s:%d: supplied argument is not a socket connection", __func__, __LINE__); + return FALSE; } if (g_thread_pool_get_num_threads(c->pool) >= SERVER_CON_POOL_SIZE) {