[alsa-devel] [PATCH 1/1] alsa-lib: fixed coverity reported issues under "REVERSE_INULL" checker.

Clemens Ladisch clemens at ladisch.de
Thu Mar 17 12:29:41 CET 2011


sudarshan.bisht at nokia.com wrote:
> --- a/src/control/setup.c
> +++ b/src/control/setup.c
> @@ -398,7 +398,7 @@ static int snd_config_get_ctl_elem_value(snd_config_t *conf,
>  
>  static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data)
>  {
> -	snd_config_t *conf;
> +	snd_config_t *conf = NULL ;
>  	snd_config_iterator_t i, next;
>  	char *tmp;
>  	int iface = SND_CTL_ELEM_IFACE_MIXER;
> @@ -415,6 +415,7 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da
>  	err = snd_config_expand(_conf, _conf, NULL, private_data, &conf);
>  	if (err < 0)
>  		return err;
> +	assert(conf);
>  	snd_config_for_each(i, next, conf) {
>  		snd_config_t *n = snd_config_iterator_entry(i);
>  		const char *id;

The last parameter of snd_config_expand() is an output parameter, and
it is guaranteed that this parameter is set when the function succeeds.

If Coverity isn't able to derive this from the code, it might be
defensible to add annotations to snd_config_expand() to make the
semantics clear, but it is not acceptable to modify each caller just
to work around shortcomings in a tool.


Regards,
Clemens


More information about the Alsa-devel mailing list