soup-session: fix a possible crash
authorDan Winship <danw@gnome.org>
Tue, 11 Dec 2012 16:33:14 +0000 (17:33 +0100)
committerDan Winship <danw@gnome.org>
Tue, 11 Dec 2012 16:33:14 +0000 (17:33 +0100)
Calling soup_session_unqueue_item() will unref the item, so we need to
add an extra ref if we want to ensure that it's still valid afterward.

libsoup/soup-session.c

index a5fac7d..f44bf8e 100644 (file)
@@ -1793,9 +1793,11 @@ soup_session_process_queue_item (SoupSession          *session,
                                break;
                        }
 
+                       soup_message_queue_item_ref (item);
                        soup_session_unqueue_item (session, item);
                        if (item->async && item->callback)
                                item->callback (session, item->msg, item->callback_data);
+                       soup_message_queue_item_unref (item);
                        return;
 
                default: