summaryrefslogtreecommitdiff
path: root/libsoup/soup-filter-input-stream.c
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2021-06-01 13:08:51 +0200
committerCarlos Garcia Campos <cgarcia@igalia.com>2021-06-01 17:02:15 +0200
commit62affd2509d9055c763148b0930a6303b37cb823 (patch)
tree9e611d6c61d9eb96a54658d242e2b2b3cdf85d25 /libsoup/soup-filter-input-stream.c
parent4a65b629a8c066c774d92207141730edc74cc4f9 (diff)
downloadlibsoup-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.c6
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;