[alsa-devel] [PATCH 1/3] alsa-lib: fixed coverity reported issues under "FORWARD_NULL" checker.
Takashi Iwai
tiwai at suse.de
Wed May 4 09:23:52 CEST 2011
At Tue, 12 Apr 2011 13:09:45 +0300,
sudarshan.bisht at nokia.com wrote:
>
> From: Sudarshan Bisht <sudarshan.bisht at nokia.com>
>
> Coverity Static Analysis helps developers find hard-to-spot,
> yet potentially crash-causing defects early in the development phase,
> reducing the cost,time, and risk of software errors.
>
> This patch has fix for situations where variable can be NULL
> but not been checked beforehand
Applied now (finally!). Thanks for the patch.
Takashi
>
> ---
> modules/mixer/simple/sbasedl.c | 2 +-
> src/conf.c | 1 +
> src/hwdep/hwdep.c | 1 +
> src/pcm/pcm_hooks.c | 1 +
> src/pcm/pcm_simple.c | 2 +-
> src/rawmidi/rawmidi.c | 1 +
> src/rawmidi/rawmidi_virt.c | 8 +++++---
> 7 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/modules/mixer/simple/sbasedl.c b/modules/mixer/simple/sbasedl.c
> index 0137586..494802f 100644
> --- a/modules/mixer/simple/sbasedl.c
> +++ b/modules/mixer/simple/sbasedl.c
> @@ -99,7 +99,7 @@ int mixer_simple_basic_dlopen(snd_mixer_class_t *class,
> __error:
> if (initflag)
> free(priv);
> - if (h == NULL)
> + if (h)
> snd_dlclose(h);
> free(xlib);
> return -ENXIO;
> diff --git a/src/conf.c b/src/conf.c
> index 8939d62..ddefff6 100644
> --- a/src/conf.c
> +++ b/src/conf.c
> @@ -3268,6 +3268,7 @@ static int snd_config_hooks_call(snd_config_t *root, snd_config_t *config, snd_c
> snd_config_iterator_t i, next;
> if (snd_config_get_type(func_conf) != SND_CONFIG_TYPE_COMPOUND) {
> SNDERR("Invalid type for func %s definition", str);
> + err = -EINVAL;
> goto _err;
> }
> snd_config_for_each(i, next, func_conf) {
> diff --git a/src/hwdep/hwdep.c b/src/hwdep/hwdep.c
> index b882b35..5dc791c 100644
> --- a/src/hwdep/hwdep.c
> +++ b/src/hwdep/hwdep.c
> @@ -78,6 +78,7 @@ static int snd_hwdep_open_conf(snd_hwdep_t **hwdep,
> if (err >= 0) {
> if (snd_config_get_type(type_conf) != SND_CONFIG_TYPE_COMPOUND) {
> SNDERR("Invalid type for HWDEP type %s definition", str);
> + err = -EINVAL;
> goto _err;
> }
> snd_config_for_each(i, next, type_conf) {
> diff --git a/src/pcm/pcm_hooks.c b/src/pcm/pcm_hooks.c
> index 3a99d55..404d51e 100644
> --- a/src/pcm/pcm_hooks.c
> +++ b/src/pcm/pcm_hooks.c
> @@ -385,6 +385,7 @@ static int snd_pcm_hook_add_conf(snd_pcm_t *pcm, snd_config_t *root, snd_config_
> if (err >= 0) {
> if (snd_config_get_type(type) != SND_CONFIG_TYPE_COMPOUND) {
> SNDERR("Invalid type for PCM type %s definition", str);
> + err = -EINVAL;
> goto _err;
> }
> snd_config_for_each(i, next, type) {
> diff --git a/src/pcm/pcm_simple.c b/src/pcm/pcm_simple.c
> index 975f699..f943ec0 100644
> --- a/src/pcm/pcm_simple.c
> +++ b/src/pcm/pcm_simple.c
> @@ -89,7 +89,7 @@ static int set_hw_params(snd_pcm_t *pcm,
> return err;
> if (periods == 1)
> return -EINVAL;
> - if (*period_time == 0) {
> + if (period_time) {
> err = INTERNAL(snd_pcm_hw_params_get_period_time)(hw_params, period_time, NULL);
> if (err < 0)
> return err;
> diff --git a/src/rawmidi/rawmidi.c b/src/rawmidi/rawmidi.c
> index b28488a..0bd6b96 100644
> --- a/src/rawmidi/rawmidi.c
> +++ b/src/rawmidi/rawmidi.c
> @@ -201,6 +201,7 @@ static int snd_rawmidi_open_conf(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp
> if (err >= 0) {
> if (snd_config_get_type(type_conf) != SND_CONFIG_TYPE_COMPOUND) {
> SNDERR("Invalid type for RAWMIDI type %s definition", str);
> + err = -EINVAL;
> goto _err;
> }
> snd_config_for_each(i, next, type_conf) {
> diff --git a/src/rawmidi/rawmidi_virt.c b/src/rawmidi/rawmidi_virt.c
> index 52b8984..e5b17e4 100644
> --- a/src/rawmidi/rawmidi_virt.c
> +++ b/src/rawmidi/rawmidi_virt.c
> @@ -383,9 +383,11 @@ int snd_rawmidi_virtual_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp,
> _err:
> if (seq_handle)
> snd_seq_close(seq_handle);
> - if (virt->midi_event)
> - snd_midi_event_free(virt->midi_event);
> - free(virt);
> + if (virt) {
> + if (virt->midi_event)
> + snd_midi_event_free(virt->midi_event);
> + free(virt);
> + }
> if (inputp)
> free(*inputp);
> if (outputp)
> --
> 1.7.0.4
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
More information about the Alsa-devel
mailing list