diff options
author | Christian Hergert <chergert@redhat.com> | 2016-05-04 10:40:50 +0300 |
---|---|---|
committer | Allison Ryan Lortie <desrt@desrt.ca> | 2016-05-10 10:56:15 +0200 |
commit | 1d746b6c949b82c98c0a60dd500e6d7acb4317ca (patch) | |
tree | b4daf520c7a61d957a2c862bba47591756766c30 | |
parent | 6a892726d1c12d9c58fca7ab5579b33e572acc85 (diff) | |
download | glib-1d746b6c949b82c98c0a60dd500e6d7acb4317ca.tar.gz |
socket: set fd field to -1 after closing socket
This ensures that g_socket_get_fd() will return -1 after the socket has
been closed.
https://bugzilla.gnome.org/show_bug.cgi?id=765959
-rw-r--r-- | gio/gsocket.c | 1 | ||||
-rw-r--r-- | gio/tests/socket.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/gio/gsocket.c b/gio/gsocket.c index e7f210139..4961f6f51 100644 --- a/gio/gsocket.c +++ b/gio/gsocket.c @@ -3285,6 +3285,7 @@ g_socket_close (GSocket *socket, break; } + socket->priv->fd = -1; socket->priv->connected_read = FALSE; socket->priv->connected_write = FALSE; socket->priv->closed = TRUE; diff --git a/gio/tests/socket.c b/gio/tests/socket.c index a5b25731f..1dba97048 100644 --- a/gio/tests/socket.c +++ b/gio/tests/socket.c @@ -1197,6 +1197,10 @@ test_fd_reuse (void) g_socket_close (data->server, &error); g_assert_no_error (error); + g_assert_cmpint (g_socket_get_fd (client), ==, -1); + g_assert_cmpint (g_socket_get_fd (client2), ==, -1); + g_assert_cmpint (g_socket_get_fd (data->server), ==, -1); + g_object_unref (data->server); g_object_unref (client); g_object_unref (client2); |