From 75c77b9116328b5686a64c8a8899b16c32f0144d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Sat, 2 Dec 2023 20:45:54 +0100 Subject: [PATCH] pipewire: module-filter-chain: builtin_plugin: fix filename leak The `filenames` array must be cleared before the `samples == NULL` check otherwise the `strdup()`ed strings will be leaked in case of failure. --- src/modules/module-filter-chain/builtin_plugin.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/modules/module-filter-chain/builtin_plugin.c b/src/modules/module-filter-chain/builtin_plugin.c index c7f5d22fe..142338580 100644 --- a/src/modules/module-filter-chain/builtin_plugin.c +++ b/src/modules/module-filter-chain/builtin_plugin.c @@ -979,15 +979,16 @@ static void * convolver_instantiate(const struct fc_descriptor * Descriptor, samples = resample_buffer(samples, &n_samples, rate, SampleRate, resample_quality); } - if (samples == NULL) { - errno = ENOENT; - return NULL; - } for (i = 0; i < MAX_RATES; i++) if (filenames[i]) free(filenames[i]); + if (samples == NULL) { + errno = ENOENT; + return NULL; + } + if (blocksize <= 0) blocksize = SPA_CLAMP(n_samples, 64, 256); if (tailsize <= 0)