summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLu, Han <han.lu@intel.com>2016-06-01 16:54:28 +0800
committerTakashi Iwai <tiwai@suse.de>2016-06-01 12:33:44 +0200
commit2b3adf8668ab4e0e57168725f2562006bb5472ef (patch)
tree30c94163dda00ab1b09a7eedd896eec2a492a51e
parent9e196efda4463452db51e295cd57bbf0bdaa4715 (diff)
downloadalsa-utils-2b3adf8668ab4e0e57168725f2562006bb5472ef.tar.gz
alsabat: fix a possible memory leak
Fix a possible memory leak in generate_sine_wave(). Memory free was ignored when the function return an error. Signed-off-by: Lu, Han <han.lu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--bat/signal.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/bat/signal.c b/bat/signal.c
index a47ba97..61d2824 100644
--- a/bat/signal.c
+++ b/bat/signal.c
@@ -168,16 +168,17 @@ int generate_sine_wave(struct bat *bat, int frames, void *buf)
/* reorder samples to interleaved mode */
err = reorder(bat, sinus_f, frames);
if (err != 0)
- return err;
+ goto exit;
/* adjust amplitude and offset of waveform */
err = adjust_waveform(bat, sinus_f, frames);
if (err != 0)
- return err;
+ goto exit;
bat->convert_float_to_sample(sinus_f, buf, frames, bat->channels);
+exit:
free(sinus_f);
- return 0;
+ return err;
}