From b5919aefd1ca043ca26583f94721fb75c72ec9a4 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Mon, 27 Jan 2020 13:44:14 -0500 Subject: Fix some buffer overflows, add a few more --- src/config_global.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/config_global.c') diff --git a/src/config_global.c b/src/config_global.c index 14f3a26..0c32ebb 100644 --- a/src/config_global.c +++ b/src/config_global.c @@ -164,6 +164,7 @@ void init_config_global(void) { SPM_GLOBAL.config = NULL; SPM_GLOBAL.verbose = 0; SPM_GLOBAL.repo_target = NULL; + SPM_GLOBAL.mirror_list = NULL; if (uname(&SPM_GLOBAL.sysinfo) != 0) { fprintf(SYSERROR); @@ -205,6 +206,18 @@ void init_config_global(void) { SPM_GLOBAL.repo_target = normpath(item->value); } + // Initialize mirror list filename + SPM_GLOBAL.mirror_config = join((char *[]) {SPM_GLOBAL.user_config_basedir, SPM_MIRROR_FILENAME, NULL}, DIRSEPS); + item = config_get(SPM_GLOBAL.config, "mirror_config"); + if (item) { + free(SPM_GLOBAL.mirror_config); + SPM_GLOBAL.mirror_config = normpath(item->value); + } + + if (SPM_GLOBAL.mirror_config != NULL) { + SPM_GLOBAL.mirror_list = mirror_list(SPM_GLOBAL.mirror_config); + } + // Initialize temp directory item = config_get(SPM_GLOBAL.config, "tmp_dir"); if (item) { -- cgit