mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Merge commit 'ec17782e17de1e8501ca213e276dfe5412ff1d11'
* commit 'ec17782e17de1e8501ca213e276dfe5412ff1d11': dvdsubdec: Check memory allocations Conflicts: libavcodec/dvdsubdec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
3d5c0ba816
@ -360,11 +360,16 @@ static int decode_dvd_subtitles(DVDSubContext *ctx, AVSubtitle *sub_header,
|
|||||||
if (w > 0 && h > 0) {
|
if (w > 0 && h > 0) {
|
||||||
reset_rects(sub_header);
|
reset_rects(sub_header);
|
||||||
|
|
||||||
bitmap = av_malloc(w * h);
|
|
||||||
sub_header->rects = av_mallocz(sizeof(*sub_header->rects));
|
sub_header->rects = av_mallocz(sizeof(*sub_header->rects));
|
||||||
|
if (!sub_header->rects)
|
||||||
|
goto fail;
|
||||||
sub_header->rects[0] = av_mallocz(sizeof(AVSubtitleRect));
|
sub_header->rects[0] = av_mallocz(sizeof(AVSubtitleRect));
|
||||||
|
if (!sub_header->rects[0])
|
||||||
|
goto fail;
|
||||||
sub_header->num_rects = 1;
|
sub_header->num_rects = 1;
|
||||||
sub_header->rects[0]->pict.data[0] = bitmap;
|
bitmap = sub_header->rects[0]->pict.data[0] = av_malloc(w * h);
|
||||||
|
if (!bitmap)
|
||||||
|
goto fail;
|
||||||
if (decode_rle(bitmap, w * 2, w, (h + 1) / 2,
|
if (decode_rle(bitmap, w * 2, w, (h + 1) / 2,
|
||||||
buf, offset1, buf_size, is_8bit) < 0)
|
buf, offset1, buf_size, is_8bit) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
@ -372,6 +377,8 @@ static int decode_dvd_subtitles(DVDSubContext *ctx, AVSubtitle *sub_header,
|
|||||||
buf, offset2, buf_size, is_8bit) < 0)
|
buf, offset2, buf_size, is_8bit) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
sub_header->rects[0]->pict.data[1] = av_mallocz(AVPALETTE_SIZE);
|
sub_header->rects[0]->pict.data[1] = av_mallocz(AVPALETTE_SIZE);
|
||||||
|
if (!sub_header->rects[0]->pict.data[1])
|
||||||
|
goto fail;
|
||||||
if (is_8bit) {
|
if (is_8bit) {
|
||||||
if (!yuv_palette)
|
if (!yuv_palette)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
Loading…
Reference in New Issue
Block a user