From d4b040af5e31260dbf71f4547484179f32be4746 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Fri, 13 Jan 2012 23:54:08 +0100 Subject: [PATCH] audioc: Fix memory leak in configfile_exists(). In case the config file does not exist, the function returns NULL without freeing the config_file buffer. This patch also makes config_file non-static. As configfile_exists() is called at most once, it is pointless to have a static variable there. The condition "if (!config_file)" is always true, so we can get rid of the conditional alltogether. --- audioc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/audioc.c b/audioc.c index 64152ce0..0c0eea47 100644 --- a/audioc.c +++ b/audioc.c @@ -253,16 +253,15 @@ __noreturn static void print_completions(void) static char *configfile_exists(void) { - static char *config_file; + char *config_file; struct stat statbuf; + char *home = para_homedir(); - if (!config_file) { - char *home = para_homedir(); - config_file = make_message("%s/.paraslash/audioc.conf", home); - free(home); - } + config_file = make_message("%s/.paraslash/audioc.conf", home); + free(home); if (!stat(config_file, &statbuf)) return config_file; + free(config_file); return NULL; } -- 2.39.5