avfilter/drawutils: Check for av_malloc* failures

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2015-01-22 13:54:26 +01:00
parent c90069c6ba
commit f77571f6bb
1 changed files with 7 additions and 0 deletions

View File

@ -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]; dst_color[rgba_map[i]] = rgba_color[i];
line[0] = av_malloc_array(w, pixel_step[0]); line[0] = av_malloc_array(w, pixel_step[0]);
if (!line[0])
return AVERROR(ENOMEM);
for (i = 0; i < w; i++) for (i = 0; i < w; i++)
memcpy(line[0] + i * pixel_step[0], dst_color, pixel_step[0]); memcpy(line[0] + i * pixel_step[0], dst_color, pixel_step[0]);
if (rgba_map_ptr) 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; pixel_step[plane] = 1;
line_size = FF_CEIL_RSHIFT(w, hsub1) * pixel_step[plane]; line_size = FF_CEIL_RSHIFT(w, hsub1) * pixel_step[plane];
line[plane] = av_malloc(line_size); 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); memset(line[plane], dst_color[plane], line_size);
} }
} }