ffmpeg | branch: master | Andreas Rheinhardt <[email protected]> | Wed May 20 21:24:34 2020 +0200| [1fd8528c4ece70ac031c8c210610e1e8b25508a4] | committer: Andreas Rheinhardt
avformat/matroskadec: Beautify matroska_parse_laces() Signed-off-by: Andreas Rheinhardt <[email protected]> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1fd8528c4ece70ac031c8c210610e1e8b25508a4 --- libavformat/matroskadec.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index b75db0dcc5..bb3a126c29 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -3037,9 +3037,9 @@ static int matroska_parse_laces(MatroskaDemuxContext *matroska, uint8_t **buf, if (size <= 0) return AVERROR_INVALIDDATA; - *laces = *data + 1; - data += 1; - size -= 1; + *laces = *data + 1; + data += 1; + size -= 1; switch (type) { case 0x1: /* Xiph lacing */ @@ -3049,31 +3049,26 @@ static int matroska_parse_laces(MatroskaDemuxContext *matroska, uint8_t **buf, for (n = 0; n < *laces - 1; n++) { lace_size[n] = 0; - while (1) { - if (size <= total) { + do { + if (size <= total) return AVERROR_INVALIDDATA; - } temp = *data; total += temp; lace_size[n] += temp; data += 1; size -= 1; - if (temp != 0xff) - break; - } + } while (temp == 0xff); } - if (size < total) { + if (size < total) return AVERROR_INVALIDDATA; - } lace_size[n] = size - total; break; } case 0x2: /* fixed-size lacing */ - if (size % (*laces)) { + if (size % (*laces)) return AVERROR_INVALIDDATA; - } for (n = 0; n < *laces; n++) lace_size[n] = size / *laces; break; @@ -3109,15 +3104,15 @@ static int matroska_parse_laces(MatroskaDemuxContext *matroska, uint8_t **buf, } data += offset; size -= offset; - if (size < total) { + if (size < total) return AVERROR_INVALIDDATA; - } + lace_size[*laces - 1] = size - total; break; } } - *buf = data; + *buf = data; return 0; } _______________________________________________ ffmpeg-cvslog mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
