sudarshan.bisht@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