aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util/configuration_loader.c3
-rw-r--r--src/util/os_installation.c2
-rw-r--r--src/util/program.c25
3 files changed, 19 insertions, 11 deletions
diff --git a/src/util/configuration_loader.c b/src/util/configuration_loader.c
index b9e5cb67f..51af24a9f 100644
--- a/src/util/configuration_loader.c
+++ b/src/util/configuration_loader.c
@@ -47,7 +47,8 @@ GNUNET_CONFIGURATION_load (struct GNUNET_CONFIGURATION_Handle *cfg,
47 47
48 base_config_varname = GNUNET_OS_project_data_get ()->base_config_varname; 48 base_config_varname = GNUNET_OS_project_data_get ()->base_config_varname;
49 49
50 if (NULL != (baseconfig = getenv (base_config_varname))) 50 if (NULL != base_config_varname
51 && NULL != (baseconfig = getenv (base_config_varname)))
51 { 52 {
52 baseconfig = GNUNET_strdup (baseconfig); 53 baseconfig = GNUNET_strdup (baseconfig);
53 } 54 }
diff --git a/src/util/os_installation.c b/src/util/os_installation.c
index 34b88d761..1f2dd2e5b 100644
--- a/src/util/os_installation.c
+++ b/src/util/os_installation.c
@@ -150,6 +150,8 @@ get_path_from_proc_maps ()
150 FILE *f; 150 FILE *f;
151 char *lgu; 151 char *lgu;
152 152
153 if (NULL == current_pd->libname)
154 return NULL;
153 GNUNET_snprintf (fn, sizeof(fn), "/proc/%u/maps", getpid ()); 155 GNUNET_snprintf (fn, sizeof(fn), "/proc/%u/maps", getpid ());
154 if (NULL == (f = fopen (fn, "r"))) 156 if (NULL == (f = fopen (fn, "r")))
155 return NULL; 157 return NULL;
diff --git a/src/util/program.c b/src/util/program.c
index 8bda34b4f..b5484855c 100644
--- a/src/util/program.c
+++ b/src/util/program.c
@@ -232,15 +232,20 @@ GNUNET_PROGRAM_run2 (int argc,
232 sizeof(struct GNUNET_GETOPT_CommandLineOption), 232 sizeof(struct GNUNET_GETOPT_CommandLineOption),
233 &cmd_sorter); 233 &cmd_sorter);
234 loglev = NULL; 234 loglev = NULL;
235 xdg = getenv ("XDG_CONFIG_HOME"); 235 if (NULL != pd->config_file && NULL != pd->user_config_file)
236 if (NULL != xdg) 236 {
237 GNUNET_asprintf (&cfg_fn, 237 xdg = getenv ("XDG_CONFIG_HOME");
238 "%s%s%s", 238 if (NULL != xdg)
239 xdg, 239 GNUNET_asprintf (&cfg_fn,
240 DIR_SEPARATOR_STR, 240 "%s%s%s",
241 pd->config_file); 241 xdg,
242 DIR_SEPARATOR_STR,
243 pd->config_file);
244 else
245 cfg_fn = GNUNET_strdup (pd->user_config_file);
246 }
242 else 247 else
243 cfg_fn = GNUNET_strdup (pd->user_config_file); 248 cfg_fn = NULL;
244 lpfx = GNUNET_strdup (binaryName); 249 lpfx = GNUNET_strdup (binaryName);
245 if (NULL != (spc = strstr (lpfx, " "))) 250 if (NULL != (spc = strstr (lpfx, " ")))
246 *spc = '\0'; 251 *spc = '\0';
@@ -269,7 +274,7 @@ GNUNET_PROGRAM_run2 (int argc,
269 } 274 }
270 else 275 else
271 { 276 {
272 if (GNUNET_YES == GNUNET_DISK_file_test (cfg_fn)) 277 if (NULL != cfg_fn && GNUNET_YES == GNUNET_DISK_file_test (cfg_fn))
273 { 278 {
274 if (GNUNET_SYSERR == GNUNET_CONFIGURATION_load (cfg, cfg_fn)) 279 if (GNUNET_SYSERR == GNUNET_CONFIGURATION_load (cfg, cfg_fn))
275 { 280 {
@@ -284,7 +289,7 @@ GNUNET_PROGRAM_run2 (int argc,
284 goto cleanup; 289 goto cleanup;
285 } 290 }
286 } 291 }
287 else 292 else if (NULL != cfg_fn)
288 { 293 {
289 GNUNET_free (cfg_fn); 294 GNUNET_free (cfg_fn);
290 cfg_fn = NULL; 295 cfg_fn = NULL;