summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2005-11-17 15:57:28 +0000
committerDan Winship <danw@src.gnome.org>2005-11-17 15:57:28 +0000
commit1c84601b0d664dafc7a825eaf50fe149d6daf54c (patch)
tree4132ff43f8dc5903afa8d6e6f4458ebe7003d8e2
parent1c677a4870af4c50f21f894bf5a75456d1d93443 (diff)
downloadlibsoup-1c84601b0d664dafc7a825eaf50fe149d6daf54c.tar.gz
libsoup-1c84601b0d664dafc7a825eaf50fe149d6daf54c.tar.bz2
libsoup-1c84601b0d664dafc7a825eaf50fe149d6daf54c.zip
clear priv->io_data right away, to protect against this being re-enteredLIBSOUP_2_2_90_NOT_A_REAL_RELEASE
* libsoup/soup-message-io.c (io_cleanup): clear priv->io_data right away, to protect against this being re-entered mid-cleanup (when we unref the connection). #321208, based on a patch from Jedy Wang.
-rw-r--r--ChangeLog7
-rw-r--r--libsoup/soup-message-io.c9
2 files changed, 12 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 73f391d8..0afe2e42 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-11-17 Dan Winship <danw@novell.com>
+
+ * libsoup/soup-message-io.c (io_cleanup): clear priv->io_data
+ right away, to protect against this being re-entered mid-cleanup
+ (when we unref the connection). #321208, based on a patch from
+ Jedy Wang.
+
2005-11-16 Dan Winship <danw@novell.com>
* libsoup/soup-xmlrpc-message.c
diff --git a/libsoup/soup-message-io.c b/libsoup/soup-message-io.c
index 7e59f163..76cc4491 100644
--- a/libsoup/soup-message-io.c
+++ b/libsoup/soup-message-io.c
@@ -75,12 +75,14 @@ static void
io_cleanup (SoupMessage *msg)
{
SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io;
+
+ soup_message_io_stop (msg);
+ io = priv->io_data;
if (!io)
return;
-
- soup_message_io_stop (msg);
+ priv->io_data = NULL;
if (io->sock)
g_object_unref (io->sock);
@@ -94,7 +96,6 @@ io_cleanup (SoupMessage *msg)
g_string_free (io->write_buf, TRUE);
g_free (io);
- priv->io_data = NULL;
}
/**