You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
avformat/scd: ensure SCD_MIN_HEADER_SIZE bytes are read
Instead of accessing unintialized data when input is shorter than expected size. Fixes use of uninitialized value in MSAN build. Found by OSS-Fuzz. Signed-off-by: Kacper Michajłow <kasper93@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
committed by
Michael Niedermayer
parent
1787fade20
commit
3334bdc6e7
@@ -30,6 +30,7 @@
|
|||||||
#include "libavutil/mem.h"
|
#include "libavutil/mem.h"
|
||||||
#include "libavformat/internal.h"
|
#include "libavformat/internal.h"
|
||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
|
#include "avio_internal.h"
|
||||||
#include "demux.h"
|
#include "demux.h"
|
||||||
|
|
||||||
#define SCD_MAGIC ((uint64_t)MKBETAG('S', 'E', 'D', 'B') << 32 | \
|
#define SCD_MAGIC ((uint64_t)MKBETAG('S', 'E', 'D', 'B') << 32 | \
|
||||||
@@ -243,7 +244,7 @@ static int scd_read_header(AVFormatContext *s)
|
|||||||
SCDDemuxContext *ctx = s->priv_data;
|
SCDDemuxContext *ctx = s->priv_data;
|
||||||
uint8_t buf[SCD_MIN_HEADER_SIZE];
|
uint8_t buf[SCD_MIN_HEADER_SIZE];
|
||||||
|
|
||||||
if ((ret = avio_read(s->pb, buf, SCD_MIN_HEADER_SIZE)) < 0)
|
if ((ret = ffio_read_size(s->pb, buf, SCD_MIN_HEADER_SIZE)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ctx->hdr.magic = AV_RB64(buf + 0);
|
ctx->hdr.magic = AV_RB64(buf + 0);
|
||||||
|
Reference in New Issue
Block a user