[libsoup/carlosgc/http2-on-data-source-crash] http2: return early from data source callack if data is NULL




commit 2332dd32e4916f05d0f462e7639eee88776242dd
Author: Carlos Garcia Campos <cgarcia igalia com>
Date:   Mon Oct 17 11:27:07 2022 +0200

    http2: return early from data source callack if data is NULL
    
    It can happen in case of cancellation.
    
    Fixes #305

 libsoup/http2/soup-client-message-io-http2.c | 9 +++++++++
 1 file changed, 9 insertions(+)
---
diff --git a/libsoup/http2/soup-client-message-io-http2.c b/libsoup/http2/soup-client-message-io-http2.c
index 9ca2edb6..abee92ff 100644
--- a/libsoup/http2/soup-client-message-io-http2.c
+++ b/libsoup/http2/soup-client-message-io-http2.c
@@ -1074,7 +1074,16 @@ on_data_source_read_callback (nghttp2_session     *session,
                               nghttp2_data_source *source,
                               void                *user_data)
 {
+        SoupClientMessageIOHTTP2 *io = user_data;
         SoupHTTP2MessageData *data = nghttp2_session_get_stream_user_data (session, stream_id);
+
+        h2_debug (io, data, "[SEND_BODY] stream_id=%u, paused=%d", stream_id, data ? data->paused : 0);
+
+        if (!data) {
+                /* This can happen in case of cancellation */
+                return 0;
+        }
+
         data->io->in_callback++;
 
         if (!data->item->async) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]