mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-31 22:25:35 -04:00
src/pcm/pcm_ladspa.c: add missing free
Something that is allocated using calloc is not freed on some error paths. Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Suman Saha <sumsaha@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
2a7f653b7f
commit
03aa1a57c9
1 changed files with 12 additions and 4 deletions
|
|
@ -750,8 +750,10 @@ static int snd_pcm_ladspa_allocate_memory(snd_pcm_t *pcm, snd_pcm_ladspa_t *lads
|
|||
if (instance->input.data == NULL ||
|
||||
instance->input.m_data == NULL ||
|
||||
instance->output.data == NULL ||
|
||||
instance->output.m_data == NULL)
|
||||
instance->output.m_data == NULL) {
|
||||
free(pchannels);
|
||||
return -ENOMEM;
|
||||
}
|
||||
for (idx = 0; idx < instance->input.channels.size; idx++) {
|
||||
chn = instance->output.channels.array[idx];
|
||||
if (pchannels[chn] == NULL && chn < ichannels) {
|
||||
|
|
@ -761,8 +763,10 @@ static int snd_pcm_ladspa_allocate_memory(snd_pcm_t *pcm, snd_pcm_ladspa_t *lads
|
|||
instance->input.data[idx] = pchannels[chn];
|
||||
if (instance->input.data[idx] == NULL) {
|
||||
instance->input.data[idx] = snd_pcm_ladspa_allocate_zero(ladspa, 0);
|
||||
if (instance->input.data[idx] == NULL)
|
||||
if (instance->input.data[idx] == NULL) {
|
||||
free(pchannels);
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (idx = 0; idx < instance->output.channels.size; idx++) {
|
||||
|
|
@ -770,8 +774,10 @@ static int snd_pcm_ladspa_allocate_memory(snd_pcm_t *pcm, snd_pcm_ladspa_t *lads
|
|||
/* FIXME/OPTIMIZE: check if we can remove double alloc */
|
||||
/* if LADSPA plugin has no broken inplace */
|
||||
instance->output.data[idx] = malloc(sizeof(LADSPA_Data) * ladspa->allocated);
|
||||
if (instance->output.data[idx] == NULL)
|
||||
if (instance->output.data[idx] == NULL) {
|
||||
free(pchannels);
|
||||
return -ENOMEM;
|
||||
}
|
||||
pchannels[chn] = instance->output.m_data[idx] = instance->output.data[idx];
|
||||
}
|
||||
}
|
||||
|
|
@ -793,8 +799,10 @@ static int snd_pcm_ladspa_allocate_memory(snd_pcm_t *pcm, snd_pcm_ladspa_t *lads
|
|||
instance->output.data[idx] = NULL;
|
||||
} else {
|
||||
instance->output.data[idx] = snd_pcm_ladspa_allocate_zero(ladspa, 1);
|
||||
if (instance->output.data[idx] == NULL)
|
||||
if (instance->output.data[idx] == NULL) {
|
||||
free(pchannels);
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue