diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c index e442935cae..dc093b0bd3 100644 --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -1471,9 +1471,12 @@ void *allocate_array_elem(void *ptr, size_t elem_size, int *nb_elems) { void *new_elem; - if (!(new_elem = av_mallocz(elem_size)) || - av_dynarray_add_nofree(ptr, nb_elems, new_elem) < 0) + new_elem = av_mallocz(elem_size); + if (!new_elem) return NULL; + if (av_dynarray_add_nofree(ptr, nb_elems, new_elem) < 0) + av_freep(&new_elem); + return new_elem; }