Check GIO channel for NULL before using it. Also shut down the GIO channel
so that already pending input will not use the free'd structure.
- g_io_channel_unref(data->channel);
- data->channel = NULL;
+ if (data->channel != NULL) {
+ g_io_channel_shutdown(data->channel, TRUE, NULL);
+ g_io_channel_unref(data->channel);
+ data->channel = NULL;
+ }
g_free(data->incoming_reply);
data->incoming_reply = NULL;
g_free(data->incoming_reply);
data->incoming_reply = NULL;
GList *list;
DBG("interface %s server %s sock %d", server->interface, server->server,
GList *list;
DBG("interface %s server %s sock %d", server->interface, server->server,
- g_io_channel_unix_get_fd(server->channel));
+ server->channel != NULL ?
+ g_io_channel_unix_get_fd(server->channel): -1);
server_list = g_slist_remove(server_list, server);
server_destroy_socket(server);
server_list = g_slist_remove(server_list, server);
server_destroy_socket(server);