aboutsummaryrefslogtreecommitdiff
path: root/src/config_global.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2020-01-27 13:44:14 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2020-01-27 13:44:14 -0500
commitb5919aefd1ca043ca26583f94721fb75c72ec9a4 (patch)
tree1e517222651d1b9f4b64ce47e9759cf3cea69ecb /src/config_global.c
parentea01a40084b4e09c8407886a5070a77aeba56d63 (diff)
downloadspmc-b5919aefd1ca043ca26583f94721fb75c72ec9a4.tar.gz
Fix some buffer overflows, add a few more
Diffstat (limited to 'src/config_global.c')
-rw-r--r--src/config_global.c13
1 files changed, 13 insertions, 0 deletions
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) {