summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-12-13 15:14:03 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-12-13 15:14:03 +0100
commit47eb15b989a0bbeef6647ec97d9ee646cb8e901a (patch)
treecb004d11a4ab2a158202839e290edbb4df87b2fe /libavfilter
parent8f9569cfacb9f595e1f5a7b45f2d31d9499369fa (diff)
avfilter/vf_pullup: fix memleak on error
Fixes CID1108604 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/vf_pullup.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavfilter/vf_pullup.c b/libavfilter/vf_pullup.c
index d0b910fe1f..58d4d7a1ea 100644
--- a/libavfilter/vf_pullup.c
+++ b/libavfilter/vf_pullup.c
@@ -157,13 +157,17 @@ static PullupField *make_field_queue(PullupContext *s, int len)
for (; len > 0; len--) {
f->next = av_mallocz(sizeof(*f->next));
- if (!f->next)
+ if (!f->next) {
+ free_field_queue(head, &f);
return NULL;
+ }
f->next->prev = f;
f = f->next;
- if (alloc_metrics(s, f) < 0)
+ if (alloc_metrics(s, f) < 0) {
+ free_field_queue(head, &f);
return NULL;
+ }
}
f->next = head;