From 37242bc30adac41afb414fb9051166426e5322e8 Mon Sep 17 00:00:00 2001 From: Sascha Kruse Date: Wed, 27 Feb 2013 00:02:14 +0100 Subject: [PATCH] don't segfault when no dunstrc is found --- option_parser.c | 9 +++++---- settings.c | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/option_parser.c b/option_parser.c index d597bdc..450a3ed 100644 --- a/option_parser.c +++ b/option_parser.c @@ -108,10 +108,7 @@ char *ini_get_string(char *section, char *key, const char *def) if (value) return g_strdup(value); - if (def == NULL) - return NULL; - else - return def ? g_strdup(def) : NULL; + return def ? g_strdup(def) : NULL; } int ini_get_int(char *section, char *key, int def) @@ -197,6 +194,9 @@ int load_ini_file(FILE * fp) { char line[BUFSIZ]; + if (!fp) + return 1; + int line_num = 0; char *current_section = NULL; while (fgets(line, sizeof(line), fp) != NULL) { @@ -383,6 +383,7 @@ char *option_get_string(char *ini_section, char *ini_key, char *cmdline_key, val = cmdline_get_string(cmdline_key, NULL, description); } + if (val) { return val; } else { diff --git a/settings.c b/settings.c index 281b3b9..74f8d5f 100644 --- a/settings.c +++ b/settings.c @@ -49,7 +49,6 @@ void load_settings(char *cmdline_config_path) if (config_file == NULL) { puts("no dunstrc found -> skipping\n"); xdgWipeHandle(&xdg); - return; } } @@ -300,9 +299,11 @@ void load_settings(char *cmdline_config_path) } #ifndef STATIC_CONFIG - fclose(config_file); - free_ini(); - xdgWipeHandle(&xdg); + if (config_file) { + fclose(config_file); + free_ini(); + xdgWipeHandle(&xdg); + } #endif } /* vim: set ts=8 sw=8 tw=0: */