On Wed, 2015-10-21 at 18:00 +0200, Alexis Ballier wrote: > klv_decode_ber_length cannot return -1, but can return AVERROR_INVALIDDATA. > Store its return value in a signed integer (instead of unsigned > KLVPacket.length) and forward the error appropriately. > --- > libavformat/mxfdec.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c > index 00d420b..94a953b 100644 > --- a/libavformat/mxfdec.c > +++ b/libavformat/mxfdec.c > @@ -366,13 +366,15 @@ static int mxf_read_sync(AVIOContext *pb, const uint8_t > *key, unsigned size) > > static int klv_read_packet(KLVPacket *klv, AVIOContext *pb) > { > + int64_t len; > if (!mxf_read_sync(pb, mxf_klv_key, 4)) > return AVERROR_INVALIDDATA; > klv->offset = avio_tell(pb) - 4; > memcpy(klv->key, mxf_klv_key, 4); > avio_read(pb, klv->key + 4, 12); > - klv->length = klv_decode_ber_length(pb); > - return klv->length == -1 ? -1 : 0; > + len = klv_decode_ber_length(pb); > + klv->length = FFMAX(len, 0); > + return FFMIN(len, 0); > }
Can't klv_read_packet() return int64_t instead? /Tomas
signature.asc
Description: This is a digitally signed message part
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel