From: Michael Tremer Date: Mon, 25 Sep 2023 17:51:16 +0000 (+0000) Subject: repo: Fail if the baseurl could not be set X-Git-Tag: 0.9.30~1639 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7229f194f82cb9d1cc2b7c7b586d02678e8452a;p=pakfire.git repo: Fail if the baseurl could not be set Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/repo.c b/src/libpakfire/repo.c index fa64e3964..e26d8c724 100644 --- a/src/libpakfire/repo.c +++ b/src/libpakfire/repo.c @@ -274,8 +274,11 @@ int pakfire_repo_import(struct pakfire* pakfire, struct pakfire_config* config) // baseurl const char* baseurl = pakfire_config_get(config, *section, "baseurl", NULL); - if (baseurl) - pakfire_repo_set_baseurl(repo, baseurl); + if (baseurl) { + r = pakfire_repo_set_baseurl(repo, baseurl); + if (r) + goto ERROR; + } // Refresh Interval const char* refresh = pakfire_config_get(config, *section, "refresh", NULL); @@ -826,11 +829,11 @@ static char* pakfire_repo_url_replace(struct pakfire_repo* repo, const char* url const char* pattern; const char* replacement; } replacements[] = { - { "%{name}", pakfire_repo_get_name(repo) }, - { "%{arch}", pakfire_get_effective_arch(repo->pakfire) }, - { "%{distro}", pakfire_get_distro_id(repo->pakfire) }, + { "%{name}", pakfire_repo_get_name(repo) }, + { "%{arch}", pakfire_get_effective_arch(repo->pakfire) }, + { "%{distro}", pakfire_get_distro_id(repo->pakfire) }, { "%{version}", pakfire_get_distro_version_id(repo->pakfire) }, - { NULL, NULL }, + { NULL }, }; char* buffer = strdup(url); @@ -838,6 +841,10 @@ static char* pakfire_repo_url_replace(struct pakfire_repo* repo, const char* url return NULL; for (const struct replacement* repl = replacements; repl->pattern; repl++) { + // Skip if there is no replacement + if (!repl->replacement) + continue; + char* r = pakfire_string_replace( buffer, repl->pattern, repl->replacement); free(buffer);