Skip to content

Commit 3b328b8

Browse files
gtkui: fix undefined behavior when spectrum data has size of 0 (fixes #3291)
1 parent 41a23bc commit 3b328b8

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

plugins/gtkui/widgets.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2887,11 +2887,17 @@ spectrum_audio_listener (void *ctx, const ddb_audio_data_t *data) {
28872887
// copy the input data for later consumption
28882888
if (w->input_data.nframes != data->nframes || w->input_data.fmt->channels != data->fmt->channels) {
28892889
free (w->input_data.data);
2890-
w->input_data.data = malloc (data->nframes * data->fmt->channels * sizeof (float));
2890+
w->input_data.data = NULL;
2891+
2892+
if (data->nframes > 0) {
2893+
w->input_data.data = malloc (data->nframes * data->fmt->channels * sizeof (float));
2894+
}
28912895
w->input_data.nframes = data->nframes;
28922896
}
28932897
memcpy (w->input_data.fmt, data->fmt, sizeof (ddb_waveformat_t));
2894-
memcpy (w->input_data.data, data->data, data->nframes * data->fmt->channels * sizeof (float));
2898+
if (w->input_data.data != NULL && data->nframes > 0) {
2899+
memcpy (w->input_data.data, data->data, data->nframes * data->fmt->channels * sizeof (float));
2900+
}
28952901
deadbeef->mutex_unlock (w->mutex);
28962902
}
28972903

0 commit comments

Comments
 (0)