summaryrefslogtreecommitdiff
path: root/gio/gbufferedinputstream.c
diff options
context:
space:
mode:
Diffstat (limited to 'gio/gbufferedinputstream.c')
-rw-r--r--gio/gbufferedinputstream.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gio/gbufferedinputstream.c b/gio/gbufferedinputstream.c
index 14495c4a0..d9f150d33 100644
--- a/gio/gbufferedinputstream.c
+++ b/gio/gbufferedinputstream.c
@@ -1104,8 +1104,8 @@ g_buffered_input_stream_real_fill_finish (GBufferedInputStream *stream,
typedef struct
{
- gssize bytes_skipped;
- gssize count;
+ gsize bytes_skipped;
+ gsize count;
} SkipAsyncData;
static void
@@ -1186,6 +1186,7 @@ skip_fill_buffer_callback (GObject *source_object,
priv->pos += data->count;
}
+ g_assert (data->bytes_skipped <= G_MAXSSIZE);
g_task_return_int (task, data->bytes_skipped);
}
@@ -1243,9 +1244,12 @@ g_buffered_input_stream_skip_async (GInputStream *stream,
if (count > priv->len)
{
/* Large request, shortcut buffer */
-
base_stream = G_FILTER_INPUT_STREAM (stream)->base_stream;
+ /* If 'count > G_MAXSSIZE then 'g_input_stream_skip_async()'
+ * will return an error anyway before calling this.
+ * Assert that this is never called for too big `count` for clarity. */
+ g_assert ((gssize) count >= 0);
g_input_stream_skip_async (base_stream,
count,
io_priority, cancellable,