From 562587e91b5ff5534a4b22a1adab7329c6c62670 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin <jmvalin@jmvalin.ca> Date: Tue, 6 Feb 2024 15:38:50 -0500 Subject: [PATCH] Avoid size-zero OPUS_COPY() with NULL pointer Fails ubsan because memcpy declares args as non-null --- dnn/nnet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dnn/nnet.c b/dnn/nnet.c index 184ec4e26..5e87f207e 100644 --- a/dnn/nnet.c +++ b/dnn/nnet.c @@ -122,11 +122,11 @@ void compute_generic_conv1d(const LinearLayer *layer, float *output, float *mem, float tmp[MAX_CONV_INPUTS_ALL]; celt_assert(input != output); celt_assert(layer->nb_inputs <= MAX_CONV_INPUTS_ALL); - OPUS_COPY(tmp, mem, layer->nb_inputs-input_size); + if (layer->nb_inputs!=input_size) OPUS_COPY(tmp, mem, layer->nb_inputs-input_size); OPUS_COPY(&tmp[layer->nb_inputs-input_size], input, input_size); compute_linear(layer, output, tmp, arch); compute_activation(output, output, layer->nb_outputs, activation, arch); - OPUS_COPY(mem, &tmp[input_size], layer->nb_inputs-input_size); + if (layer->nb_inputs!=input_size) OPUS_COPY(mem, &tmp[input_size], layer->nb_inputs-input_size); } void compute_generic_conv1d_dilation(const LinearLayer *layer, float *output, float *mem, const float *input, int input_size, int dilation, int activation, int arch) -- GitLab