From: Takashi Iwai Date: Fri, 8 Jun 2001 12:17:14 +0000 (+0000) Subject: Fixed seg. fault when invalid /etc/asound.conf is found. X-Git-Tag: v1.0.3~819 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=3d2f333c6cf252c6efb36ea53db07199b41b58b1;p=alsa-lib.git Fixed seg. fault when invalid /etc/asound.conf is found. --- diff --git a/src/conf.c b/src/conf.c index b06ad588..8b27143d 100644 --- a/src/conf.c +++ b/src/conf.c @@ -885,13 +885,11 @@ int snd_config_load(snd_config_t *config, snd_input_t *in) SNDERR("%s:%d:%d:%s", fd->name ? fd->name : "", fd->line, fd->column, str); } - snd_config_delete(config); goto _end; } if (get_char(&input) != EOF) { SNDERR("%s:%d:%d:Unexpected }", fd->name ? fd->name : "", fd->line, fd->column); - snd_config_delete(config); err = -EINVAL; goto _end; } @@ -1898,8 +1896,10 @@ static int parse_args(snd_config_t *subs, const char *str, snd_config_t *defs) return err; err = snd_config_load(subs, input); snd_input_close(input); - if (err < 0) + if (err < 0) { + snd_config_delete(subs); return err; + } snd_config_for_each(i, next, subs) { snd_config_t *n = snd_config_iterator_entry(i); snd_config_t *d;