diff options
author | Carlos Garcia Campos <cgarcia@igalia.com> | 2021-06-01 13:08:51 +0200 |
---|---|---|
committer | Carlos Garcia Campos <cgarcia@igalia.com> | 2021-06-01 17:02:15 +0200 |
commit | 62affd2509d9055c763148b0930a6303b37cb823 (patch) | |
tree | 9e611d6c61d9eb96a54658d242e2b2b3cdf85d25 /libsoup/soup-filter-input-stream.c | |
parent | 4a65b629a8c066c774d92207141730edc74cc4f9 (diff) | |
download | libsoup-62affd2509d9055c763148b0930a6303b37cb823.tar.gz |
filter-input-stream: check cancellable on read and skip
When reading from the base stream the cancellable is always checked, but
not when reading from the internal buffer.
Diffstat (limited to 'libsoup/soup-filter-input-stream.c')
-rw-r--r-- | libsoup/soup-filter-input-stream.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libsoup/soup-filter-input-stream.c b/libsoup/soup-filter-input-stream.c index 6ef11a05..b1e616c7 100644 --- a/libsoup/soup-filter-input-stream.c +++ b/libsoup/soup-filter-input-stream.c @@ -91,6 +91,9 @@ soup_filter_input_stream_read_fn (GInputStream *stream, SoupFilterInputStreamPrivate *priv = soup_filter_input_stream_get_instance_private (fstream); gssize bytes_read; + if (g_cancellable_set_error_if_cancelled (cancellable, error)) + return -1; + if (!priv->in_read_until) priv->need_more = FALSE; @@ -116,6 +119,9 @@ soup_filter_input_stream_skip (GInputStream *stream, SoupFilterInputStreamPrivate *priv = soup_filter_input_stream_get_instance_private (fstream); gssize bytes_skipped; + if (g_cancellable_set_error_if_cancelled (cancellable, error)) + return -1; + if (!priv->in_read_until) priv->need_more = FALSE; |