From 4bb2da8204f6a05801bc0a67ca87d7549f856ca5 Mon Sep 17 00:00:00 2001 From: Oliver Freyermuth Date: Tue, 13 Jan 2015 00:54:03 +0100 Subject: cache: cache-position needs to be int64_t Both max_filepos and offset are int64_t, so pos can overflow, e.g. causing endless loops in stream implementation. --- stream/cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stream/cache.c b/stream/cache.c index 12c66a32bb..ea51fd2421 100644 --- a/stream/cache.c +++ b/stream/cache.c @@ -241,7 +241,7 @@ static bool cache_fill(struct priv *s) int64_t space = s->buffer_size - (newb + back); // offset into the buffer that maps to max_filepos - int pos = s->max_filepos - s->offset; + int64_t pos = s->max_filepos - s->offset; if (pos >= s->buffer_size) pos -= s->buffer_size; // wrap-around -- cgit v1.2.3