diff options
author | Carlos Garcia Campos <cgarcia@igalia.com> | 2022-10-17 11:27:07 +0200 |
---|---|---|
committer | Carlos Garcia Campos <cgarcia@igalia.com> | 2022-10-17 11:27:07 +0200 |
commit | 2332dd32e4916f05d0f462e7639eee88776242dd (patch) | |
tree | 29a1007db92e7736f17599eeaff62c18e910fdd2 | |
parent | 5ce3a206aeaab8c01431ead75ea8107729447d8b (diff) | |
download | libsoup-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.c | 9 |
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) { |