On Wed, May 20, 2015 at 12:49:55AM +0200, Andreas Cadhalpun wrote: > This can unnecessarily waste a lot of time. > > Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> > --- > libavformat/nutdec.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c > index a75587f..e979ee6 100644 > --- a/libavformat/nutdec.c > +++ b/libavformat/nutdec.c > @@ -47,6 +47,8 @@ static int get_str(AVIOContext *bc, char *string, unsigned > int maxlen) > while (len > maxlen) { > avio_r8(bc); > len--; > + if (bc->eof_reached) > + len = maxlen; > }
maybe this would be better as avio_skip() but ok either way > > if (maxlen) > @@ -211,7 +213,7 @@ static int skip_reserved(AVIOContext *bc, int64_t pos) > avio_seek(bc, pos, SEEK_CUR); > return AVERROR_INVALIDDATA; > } else { > - while (pos--) > + while (pos-- && !bc->eof_reached) > avio_r8(bc); > return 0; > } > @@ -291,7 +293,7 @@ static int decode_main_header(NUTContext *nut) > if (tmp_fields > 7) > tmp_head_idx = ffio_read_varlen(bc); > > - while (tmp_fields-- > 8) > + while (tmp_fields-- > 8 && !bc->eof_reached) > ffio_read_varlen(bc); > > if (count <= 0 || count > 256 - (i <= 'N') - i) { > @@ -990,7 +992,7 @@ static int decode_frame_header(NUTContext *nut, int64_t > *pts, int *stream_id, > *header_idx = ffio_read_varlen(bc); > if (flags & FLAG_RESERVED) > reserved_count = ffio_read_varlen(bc); > - for (i = 0; i < reserved_count; i++) > + for (i = 0; i < reserved_count && !bc->eof_reached; i++) > ffio_read_varlen(bc); these should return an error in the eof case the first of the 3 could use a seek/skip as well possibly also if you want some of these things could also be limited by te packet end from get_packetheader and not just EOF [..] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB it is not once nor twice but times without number that the same ideas make their appearance in the world. -- Aristotle
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel