diff options
-rw-r--r-- | src/util/configuration_loader.c | 3 | ||||
-rw-r--r-- | src/util/os_installation.c | 2 | ||||
-rw-r--r-- | src/util/program.c | 25 |
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; |