summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;