diff options
author | Alex Converse <alex.converse@gmail.com> | 2012-09-19 11:12:58 -0700 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2012-10-19 19:23:14 +0200 |
commit | 8076d32f309215d510d78261b7c2cfaf39aa8ab0 (patch) | |
tree | 4efe950405467f43736515985eb067f418173cad | |
parent | 0f3381ad5bff4c21ba8631fcb54e7e26b6a96803 (diff) | |
download | ffmpeg-8076d32f309215d510d78261b7c2cfaf39aa8ab0.tar.gz |
tiffenc: Check av_malloc() results.
(cherry picked from commit b92dfb56d4582633571db18c3d904f8602eaa2a6)
Conflicts:
libavcodec/tiffenc.c
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
-rw-r--r-- | libavcodec/tiffenc.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libavcodec/tiffenc.c b/libavcodec/tiffenc.c index 3b2b82991b..af9a870955 100644 --- a/libavcodec/tiffenc.c +++ b/libavcodec/tiffenc.c @@ -316,6 +316,10 @@ static int encode_frame(AVCodecContext * avctx, unsigned char *buf, strip_sizes = av_mallocz(sizeof(*strip_sizes) * strips); strip_offsets = av_mallocz(sizeof(*strip_offsets) * strips); + if (!strip_sizes || !strip_offsets) { + ret = AVERROR(ENOMEM); + goto fail; + } bytes_per_row = (((s->width - 1)/s->subsampling[0] + 1) * s->bpp * s->subsampling[0] * s->subsampling[1] + 7) >> 3; @@ -323,6 +327,7 @@ static int encode_frame(AVCodecContext * avctx, unsigned char *buf, yuv_line = av_malloc(bytes_per_row); if (yuv_line == NULL){ av_log(s->avctx, AV_LOG_ERROR, "Not enough memory\n"); + ret = AVERROR(ENOMEM); goto fail; } } @@ -335,6 +340,10 @@ static int encode_frame(AVCodecContext * avctx, unsigned char *buf, zlen = bytes_per_row * s->rps; zbuf = av_malloc(zlen); + if (!zbuf) { + ret = AVERROR(ENOMEM); + goto fail; + } strip_offsets[0] = ptr - buf; zn = 0; for (j = 0; j < s->rps; j++) { @@ -359,8 +368,13 @@ static int encode_frame(AVCodecContext * avctx, unsigned char *buf, } else #endif { - if(s->compr == TIFF_LZW) + if (s->compr == TIFF_LZW) { s->lzws = av_malloc(ff_lzw_encode_state_size); + if (!s->lzws) { + ret = AVERROR(ENOMEM); + goto fail; + } + } for (i = 0; i < s->height; i++) { if (strip_sizes[i / s->rps] == 0) { if(s->compr == TIFF_LZW){ |