summaryrefslogtreecommitdiff
path: root/libavfilter/drawutils.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-01-22 13:54:26 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-01-22 13:54:26 +0100
commitf77571f6bb5a252e09fc47049b0c61cc11559fad (patch)
treed22054569ce29ee7e9c0b9c84fca92c13cf5b32d /libavfilter/drawutils.c
parentc90069c6ba046b82cbfd7686661fc93f0c5cdc6a (diff)
downloadffmpeg-f77571f6bb5a252e09fc47049b0c61cc11559fad.tar.gz
avfilter/drawutils: Check for av_malloc* failures
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/drawutils.c')
-rw-r--r--libavfilter/drawutils.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c
index ac30db21a6..0b2f17e52a 100644
--- a/libavfilter/drawutils.c
+++ b/libavfilter/drawutils.c
@@ -76,6 +76,8 @@ int ff_fill_line_with_color(uint8_t *line[4], int pixel_step[4], int w, uint8_t
dst_color[rgba_map[i]] = rgba_color[i];
line[0] = av_malloc_array(w, pixel_step[0]);
+ if (!line[0])
+ return AVERROR(ENOMEM);
for (i = 0; i < w; i++)
memcpy(line[0] + i * pixel_step[0], dst_color, pixel_step[0]);
if (rgba_map_ptr)
@@ -95,6 +97,11 @@ int ff_fill_line_with_color(uint8_t *line[4], int pixel_step[4], int w, uint8_t
pixel_step[plane] = 1;
line_size = FF_CEIL_RSHIFT(w, hsub1) * pixel_step[plane];
line[plane] = av_malloc(line_size);
+ if (!line[plane]) {
+ while(plane && line[plane-1])
+ av_freep(&line[--plane]);
+ return AVERROR(ENOMEM);
+ }
memset(line[plane], dst_color[plane], line_size);
}
}