From ca545e23a138bd09e2a3631b362be6eb1ff06f87 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 27 Feb 2008 21:39:27 +0000 Subject: [PATCH] ensure that nread/nwrote parameters aren't NULL. They are also properly 2008-02-27 Benjamin Otte * libsoup/soup-socket.c: (read_from_network), (soup_socket_read), (soup_socket_read_until), (soup_socket_write): ensure that nread/nwrote parameters aren't NULL. They are also properly set on error paths now. svn path=/trunk/; revision=1098 --- ChangeLog | 7 +++++++ libsoup/soup-socket.c | 12 ++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index cbc214b..8e01606 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-02-27 Benjamin Otte + + * libsoup/soup-socket.c: (read_from_network), (soup_socket_read), + (soup_socket_read_until), (soup_socket_write): + ensure that nread/nwrote parameters aren't NULL. They are also + properly set on error paths now. + 2008-02-25 Dan Winship * configure.in: 2.3.4 diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c index db5f20f..660c623 100644 --- a/libsoup/soup-socket.c +++ b/libsoup/soup-socket.c @@ -1040,7 +1040,9 @@ read_from_network (SoupSocket *sock, gpointer buffer, gsize len, GIOCondition cond = G_IO_IN; GError *my_err = NULL; - if (!priv->iochannel) + *nread = 0; + + if (!priv->iochannel) return SOUP_SOCKET_EOF; status = g_io_channel_read_chars (priv->iochannel, @@ -1151,6 +1153,8 @@ soup_socket_read (SoupSocket *sock, gpointer buffer, gsize len, SoupSocketIOStatus status; g_return_val_if_fail (SOUP_IS_SOCKET (sock), SOUP_SOCKET_ERROR); + g_return_val_if_fail (nread != NULL, SOUP_SOCKET_ERROR); + priv = SOUP_SOCKET_GET_PRIVATE (sock); g_mutex_lock (priv->iolock); @@ -1196,9 +1200,11 @@ soup_socket_read_until (SoupSocket *sock, gpointer buffer, gsize len, guint8 *p, *end; g_return_val_if_fail (SOUP_IS_SOCKET (sock), SOUP_SOCKET_ERROR); - priv = SOUP_SOCKET_GET_PRIVATE (sock); + g_return_val_if_fail (nread != NULL, SOUP_SOCKET_ERROR); g_return_val_if_fail (len >= boundary_len, SOUP_SOCKET_ERROR); + priv = SOUP_SOCKET_GET_PRIVATE (sock); + g_mutex_lock (priv->iolock); *got_boundary = FALSE; @@ -1296,6 +1302,8 @@ soup_socket_write (SoupSocket *sock, gconstpointer buffer, GError *my_err = NULL; g_return_val_if_fail (SOUP_IS_SOCKET (sock), SOUP_SOCKET_ERROR); + g_return_val_if_fail (nwrote != NULL, SOUP_SOCKET_ERROR); + priv = SOUP_SOCKET_GET_PRIVATE (sock); g_mutex_lock (priv->iolock); -- 2.7.4