From df72691f514e2437b1917d808b6fcd153c393c20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomas=20H=C3=A4rdin?= Date: Wed, 28 Sep 2022 11:34:45 +0200 Subject: [PATCH] lavu/mem: Do not require *nb_allocated == 0 when *ptr == NULL --- libavutil/mem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavutil/mem.c b/libavutil/mem.c index 781dcbaded..bd2ee342fe 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -561,7 +561,10 @@ int av_realloc_array_reuse(void *ptr, size_t *nb_allocated, void *array; size_t nb, max_alloc_size_bytes; - if (min_nb <= *nb_allocated) + memcpy(&array, ptr, sizeof(array)); + + // make no demands on *nb_allocated if *ptr == NULL + if (array && min_nb <= *nb_allocated) return 0; max_alloc_size_bytes = atomic_load_explicit(&max_alloc_size, memory_order_relaxed); @@ -571,7 +574,6 @@ int av_realloc_array_reuse(void *ptr, size_t *nb_allocated, return AVERROR(ERANGE); nb = compute_nb(min_nb, max_nb); - memcpy(&array, ptr, sizeof(array)); array = av_realloc(array, nb * elsize); if (!array) -- 2.30.2