summaryrefslogtreecommitdiff
path: root/libavfilter/vf_removelogo.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-05-10 21:29:24 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-05-10 21:29:24 +0200
commit6b9e0bf42fb360a150e08b8eb6404ac1ed66ef7e (patch)
treef462cbea89163ed82c46c5756790269c1b6e73df /libavfilter/vf_removelogo.c
parent8e078000010bb5201a521489d32e138765c38fe7 (diff)
avfilter/vf_removelogo: fix memleak on failure
Fixes CID751770 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_removelogo.c')
-rw-r--r--libavfilter/vf_removelogo.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavfilter/vf_removelogo.c b/libavfilter/vf_removelogo.c
index 01a585c218..889050b764 100644
--- a/libavfilter/vf_removelogo.c
+++ b/libavfilter/vf_removelogo.c
@@ -318,12 +318,16 @@ static av_cold int init(AVFilterContext *ctx)
for (a = 0; a <= s->max_mask_size; a++) {
mask[a] = (int **)av_malloc(sizeof(int *) * ((a * 2) + 1));
- if (!mask[a])
+ if (!mask[a]) {
+ av_free(mask);
return AVERROR(ENOMEM);
+ }
for (b = -a; b <= a; b++) {
mask[a][b + a] = (int *)av_malloc(sizeof(int) * ((a * 2) + 1));
- if (!mask[a][b + a])
+ if (!mask[a][b + a]) {
+ av_free(mask);
return AVERROR(ENOMEM);
+ }
for (c = -a; c <= a; c++) {
if ((b * b) + (c * c) <= (a * a)) /* Circular 0/1 mask. */
mask[a][b + a][c + a] = 1;