
On Thu, 2011-03-17 at 12:22 +0100, ext Clemens Ladisch wrote:
sudarshan.bisht@nokia.com wrote:
--- a/src/control/control_hw.c +++ b/src/control/control_hw.c @@ -414,6 +414,7 @@ int snd_ctl_hw_open(snd_ctl_t **handle, const char *name, int card, int mode) if (err < 0) { close(fd); free(hw);
}hw = NULL;
In this place, it's just a "return err" that is missing.
Ok.
--- a/src/mixer/mixer.c +++ b/src/mixer/mixer.c @@ -205,7 +205,7 @@ int snd_mixer_attach(snd_mixer_t *mixer, const char *name) return err; err = snd_mixer_attach_hctl(mixer, hctl); if (err < 0) {
snd_hctl_close(hctl);
return err; }/* ideally hctl should be freed here, but it's taken care in snd_mixer_attach_hctl*/
If the calloc() in snd_mixer_attach_hctl() fails, hctl is not freed. The bug is the inconsistent error handling cleanup in snd_mixer_attach_hctl(); I think it shouldn't free its hctl in any case.
Ok, I will remove freeing of hctl from snd_mixer_attach_hctl().
Regards, Clemens
Br, Sudarshan Bisht