aboutsummaryrefslogtreecommitdiffstats
path: root/libswscale/swscale.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-04-28 19:31:16 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-04-28 19:31:16 +0200
commit24ec7a5e049e8cad6269e5efe46bee87f61dff3f (patch)
tree388b453b0d7b40b95262db5d99874ad462677504 /libswscale/swscale.c
parent0c47c9028be2cf4b1a557e653606fced5b959445 (diff)
downloadffmpeg-24ec7a5e049e8cad6269e5efe46bee87f61dff3f.tar.gz
sws: Check for malloc failure of rgb0_tmp
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswscale/swscale.c')
-rw-r--r--libswscale/swscale.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 190a7b98f4..15810728a1 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -968,6 +968,9 @@ int attribute_align_arg sws_scale(struct SwsContext *c,
uint8_t *base;
int x,y;
rgb0_tmp = av_malloc(FFABS(srcStride[0]) * srcSliceH + 32);
+ if (!rgb0_tmp)
+ return AVERROR(ENOMEM);
+
base = srcStride[0] < 0 ? rgb0_tmp - srcStride[0] * (srcSliceH-1) : rgb0_tmp;
for (y=0; y<srcSliceH; y++){
memcpy(base + srcStride[0]*y, src2[0] + srcStride[0]*y, 4*c->srcW);
@@ -981,6 +984,9 @@ int attribute_align_arg sws_scale(struct SwsContext *c,
if (c->srcXYZ && !(c->dstXYZ && c->srcW==c->dstW && c->srcH==c->dstH)) {
uint8_t *base;
rgb0_tmp = av_malloc(FFABS(srcStride[0]) * srcSliceH + 32);
+ if (!rgb0_tmp)
+ return AVERROR(ENOMEM);
+
base = srcStride[0] < 0 ? rgb0_tmp - srcStride[0] * (srcSliceH-1) : rgb0_tmp;
xyz12Torgb48(c, base, src2[0], srcStride[0]/2, srcSliceH);