summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2022-10-17 11:27:07 +0200
committerCarlos Garcia Campos <cgarcia@igalia.com>2022-10-17 11:27:07 +0200
commit2332dd32e4916f05d0f462e7639eee88776242dd (patch)
tree29a1007db92e7736f17599eeaff62c18e910fdd2
parent5ce3a206aeaab8c01431ead75ea8107729447d8b (diff)
downloadlibsoup-2332dd32e4916f05d0f462e7639eee88776242dd.tar.gz
http2: return early from data source callack if data is NULL
It can happen in case of cancellation. Fixes #305
-rw-r--r--libsoup/http2/soup-client-message-io-http2.c9
1 files changed, 9 insertions, 0 deletions
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) {