1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-10 06:10:52 +02:00

Merge commit 'd68fb1475856cf93199e2bc4eee3063902c35df7'

* commit 'd68fb1475856cf93199e2bc4eee3063902c35df7':
  mjpegdec: Properly fail on malloc failure

Merged-by: Clément Bœsch <u@pkh.me>
This commit is contained in:
Clément Bœsch
2016-06-25 11:42:57 +02:00

View File

@@ -1876,9 +1876,11 @@ static int mjpeg_decode_com(MJpegDecodeContext *s)
{ {
int len = get_bits(&s->gb, 16); int len = get_bits(&s->gb, 16);
if (len >= 2 && 8 * len - 16 <= get_bits_left(&s->gb)) { if (len >= 2 && 8 * len - 16 <= get_bits_left(&s->gb)) {
char *cbuf = av_malloc(len - 1);
if (cbuf) {
int i; int i;
char *cbuf = av_malloc(len - 1);
if (!cbuf)
return AVERROR(ENOMEM);
for (i = 0; i < len - 2; i++) for (i = 0; i < len - 2; i++)
cbuf[i] = get_bits(&s->gb, 8); cbuf[i] = get_bits(&s->gb, 8);
if (i > 0 && cbuf[i - 1] == '\n') if (i > 0 && cbuf[i - 1] == '\n')
@@ -1904,7 +1906,6 @@ static int mjpeg_decode_com(MJpegDecodeContext *s)
av_free(cbuf); av_free(cbuf);
} }
}
return 0; return 0;
} }
@@ -2114,8 +2115,11 @@ int ff_mjpeg_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
else if (start_code >= APP0 && start_code <= APP15) else if (start_code >= APP0 && start_code <= APP15)
mjpeg_decode_app(s); mjpeg_decode_app(s);
/* Comment */ /* Comment */
else if (start_code == COM) else if (start_code == COM) {
mjpeg_decode_com(s); ret = mjpeg_decode_com(s);
if (ret < 0)
return ret;
}
ret = -1; ret = -1;