From: Jaroslav Kysela Date: Mon, 14 Dec 2009 16:26:57 +0000 (+0100) Subject: alsactl: fix error path code in init_parse.c X-Git-Tag: v1.0.22~3 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=1247c3d8ac6a3ab9b77b92de64e721948a473489;p=alsa-utils.git alsactl: fix error path code in init_parse.c If initialization file (-i option) does not exists, the free_space() function was called with NULL pointer. Signed-off-by: Jaroslav Kysela --- diff --git a/alsactl/init_parse.c b/alsactl/init_parse.c index 8d9c7ae..51b515c 100644 --- a/alsactl/init_parse.c +++ b/alsactl/init_parse.c @@ -1747,10 +1747,12 @@ int init(const char *filename, const char *cardname) } first = 0; err = init_space(&space, card); - if (err == 0 && - (space->rootdir = new_root_dir(filename)) != NULL) - err = parse(space, filename); - free_space(space); + if (err == 0) { + space->rootdir = new_root_dir(filename); + if (space->rootdir != NULL) + err = parse(space, filename); + free_space(space); + } if (err < 0) break; } @@ -1762,10 +1764,12 @@ int init(const char *filename, const char *cardname) } memset(&space, 0, sizeof(space)); err = init_space(&space, card); - if (err == 0 && - (space->rootdir = new_root_dir(filename)) != NULL) - err = parse(space, filename); - free_space(space); + if (err == 0) { + space->rootdir = new_root_dir(filename); + if (space->rootdir != NULL) + err = parse(space, filename); + free_space(space); + } } error: sysfs_cleanup();