From 7f96325bc4ccdcb4767bd6d11591d1e66f1350f4 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sat, 14 Dec 2019 23:19:14 +0100 Subject: [PATCH] bytestream: Make get_bytes_left compatible with overread bytestream2_get_bytes_left returns an unsigned int; as a result, it returns big positive numbers if an overread already happened, making it unsuitable for scenarios where one wants to allow this in a controlled way (because the buffer is actually padded so that no segfaults can happen). So change it to return an ordinary int. Also, bytestream2_get_bytes_left_p has been modified in the same way. Signed-off-by: Andreas Rheinhardt Signed-off-by: Michael Niedermayer --- libavcodec/bytestream.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/bytestream.h b/libavcodec/bytestream.h index 7be7fc22fc..0516a6e3dc 100644 --- a/libavcodec/bytestream.h +++ b/libavcodec/bytestream.h @@ -151,12 +151,12 @@ static av_always_inline void bytestream2_init_writer(PutByteContext *p, p->eof = 0; } -static av_always_inline unsigned int bytestream2_get_bytes_left(GetByteContext *g) +static av_always_inline int bytestream2_get_bytes_left(GetByteContext *g) { return g->buffer_end - g->buffer; } -static av_always_inline unsigned int bytestream2_get_bytes_left_p(PutByteContext *p) +static av_always_inline int bytestream2_get_bytes_left_p(PutByteContext *p) { return p->buffer_end - p->buffer; }