Commit a23a6bf0 authored by Anton Khirnov's avatar Anton Khirnov Committed by Michael Niedermayer

bytestream2: set the reader to the end when reading more than available

This prevents possible infinite loops with the calling code along the
lines of while (bytestream2_get_bytes_left()) { ... }, where the reader
does not advance.

CC: libav-stable@libav.org
(cherry picked from commit 86eee85d)
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent cbc5d2bf
...@@ -71,8 +71,10 @@ static av_always_inline type bytestream2_get_ ## name ## u(GetByteContext *g) \ ...@@ -71,8 +71,10 @@ static av_always_inline type bytestream2_get_ ## name ## u(GetByteContext *g) \
} \ } \
static av_always_inline type bytestream2_get_ ## name(GetByteContext *g) \ static av_always_inline type bytestream2_get_ ## name(GetByteContext *g) \
{ \ { \
if (g->buffer_end - g->buffer < bytes) \ if (g->buffer_end - g->buffer < bytes) { \
g->buffer = g->buffer_end; \
return 0; \ return 0; \
} \
return bytestream2_get_ ## name ## u(g); \ return bytestream2_get_ ## name ## u(g); \
} \ } \
static av_always_inline type bytestream2_peek_ ## name(GetByteContext *g) \ static av_always_inline type bytestream2_peek_ ## name(GetByteContext *g) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment