mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-09 12:25:48 +01:00
gsocket: Add missing check_socket() checks
This makes no great difference, just increases robustness a bit. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #1339
This commit is contained in:
parent
884d989bd9
commit
39f047e821
@ -3117,6 +3117,9 @@ g_socket_get_available_bytes (GSocket *socket)
|
|||||||
|
|
||||||
g_return_val_if_fail (G_IS_SOCKET (socket), -1);
|
g_return_val_if_fail (G_IS_SOCKET (socket), -1);
|
||||||
|
|
||||||
|
if (!check_socket (socket, NULL))
|
||||||
|
return -1;
|
||||||
|
|
||||||
#ifdef SO_NREAD
|
#ifdef SO_NREAD
|
||||||
if (!g_socket_get_option (socket, SOL_SOCKET, SO_NREAD, &avail, NULL))
|
if (!g_socket_get_option (socket, SOL_SOCKET, SO_NREAD, &avail, NULL))
|
||||||
return -1;
|
return -1;
|
||||||
@ -3745,7 +3748,6 @@ g_socket_is_closed (GSocket *socket)
|
|||||||
return socket->priv->closed;
|
return socket->priv->closed;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef G_OS_WIN32
|
|
||||||
/* Broken source, used on errors */
|
/* Broken source, used on errors */
|
||||||
static gboolean
|
static gboolean
|
||||||
broken_dispatch (GSource *source,
|
broken_dispatch (GSource *source,
|
||||||
@ -3763,6 +3765,7 @@ static GSourceFuncs broken_funcs =
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
static gint
|
static gint
|
||||||
network_events_for_condition (GIOCondition condition)
|
network_events_for_condition (GIOCondition condition)
|
||||||
{
|
{
|
||||||
@ -4090,6 +4093,12 @@ socket_source_new (GSocket *socket,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (!check_socket (socket, NULL))
|
||||||
|
{
|
||||||
|
g_warning ("Socket check failed");
|
||||||
|
return g_source_new (&broken_funcs, sizeof (GSource));
|
||||||
|
}
|
||||||
|
|
||||||
condition |= G_IO_HUP | G_IO_ERR | G_IO_NVAL;
|
condition |= G_IO_HUP | G_IO_ERR | G_IO_NVAL;
|
||||||
|
|
||||||
source = g_source_new (&socket_source_funcs, sizeof (GSocketSource));
|
source = g_source_new (&socket_source_funcs, sizeof (GSocketSource));
|
||||||
@ -5931,6 +5940,9 @@ g_socket_get_credentials (GSocket *socket,
|
|||||||
g_return_val_if_fail (G_IS_SOCKET (socket), NULL);
|
g_return_val_if_fail (G_IS_SOCKET (socket), NULL);
|
||||||
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
||||||
|
|
||||||
|
if (!check_socket (socket, error))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
ret = NULL;
|
ret = NULL;
|
||||||
|
|
||||||
#if G_CREDENTIALS_SOCKET_GET_CREDENTIALS_SUPPORTED
|
#if G_CREDENTIALS_SOCKET_GET_CREDENTIALS_SUPPORTED
|
||||||
@ -6082,6 +6094,11 @@ g_socket_get_option (GSocket *socket,
|
|||||||
|
|
||||||
g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
|
g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
|
||||||
|
|
||||||
|
/* g_socket_get_option() is called during socket init, so skip the init checks
|
||||||
|
* in check_socket() */
|
||||||
|
if (socket->priv->inited && !check_socket (socket, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
*value = 0;
|
*value = 0;
|
||||||
size = sizeof (gint);
|
size = sizeof (gint);
|
||||||
if (getsockopt (socket->priv->fd, level, optname, value, &size) != 0)
|
if (getsockopt (socket->priv->fd, level, optname, value, &size) != 0)
|
||||||
@ -6145,6 +6162,9 @@ g_socket_set_option (GSocket *socket,
|
|||||||
|
|
||||||
g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
|
g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
|
||||||
|
|
||||||
|
if (!check_socket (socket, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
if (setsockopt (socket->priv->fd, level, optname, &value, sizeof (gint)) == 0)
|
if (setsockopt (socket->priv->fd, level, optname, &value, sizeof (gint)) == 0)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user