[alsa-devel] [PATCH] alsa-lib: fixed coverity reported issues under "USE_AFTER_FREE" checker.
Clemens Ladisch
clemens at ladisch.de
Thu Mar 17 12:22:24 CET 2011
sudarshan.bisht at 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.
> --- 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);
> + /* ideally hctl should be freed here, but it's taken care in snd_mixer_attach_hctl*/
> return err;
> }
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.
Regards,
Clemens
More information about the Alsa-devel
mailing list