avformat/aviobuf: Fix signed integer overflow in avio_seek()
Signed integer overflow is undefined behavior.
Detected with clang and -fsanitize=signed-integer-overflow
Signed-off-by: Vitaly Buka <vitalybuka@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit eca2a49716)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
64af458bb8
commit
aadd7fbc14
1 changed files with 2 additions and 0 deletions
|
|
@ -227,6 +227,8 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
|
|||
offset1 = pos + (s->buf_ptr - s->buffer);
|
||||
if (offset == 0)
|
||||
return offset1;
|
||||
if (offset > INT64_MAX - offset1)
|
||||
return AVERROR(EINVAL);
|
||||
offset += offset1;
|
||||
}
|
||||
if (offset < 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue