From 1247c3d8ac6a3ab9b77b92de64e721948a473489 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 14 Dec 2009 17:26:57 +0100 Subject: [PATCH] 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 --- alsactl/init_parse.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) 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(); -- 2.47.1