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 <[email protected]> > --- > 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 [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
