diff options
author | Lu, Han <han.lu@intel.com> | 2016-06-01 16:54:28 +0800 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2016-06-01 12:33:44 +0200 |
commit | 2b3adf8668ab4e0e57168725f2562006bb5472ef (patch) | |
tree | 30c94163dda00ab1b09a7eedd896eec2a492a51e | |
parent | 9e196efda4463452db51e295cd57bbf0bdaa4715 (diff) | |
download | alsa-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.c | 7 |
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; } |