summaryrefslogtreecommitdiff
path: root/urlmatch.c
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2020-04-24 22:35:49 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-04-24 22:53:46 (GMT)
commit12294990c90e043862be9eb7eb22c3784b526340 (patch)
treee258d311efe37e9a942b4927323270a806bf3e86 /urlmatch.c
parentf52b0cb4184362b2f88ebbf9ea20016914ce469d (diff)
downloadgit-12294990c90e043862be9eb7eb22c3784b526340.zip
git-12294990c90e043862be9eb7eb22c3784b526340.tar.gz
git-12294990c90e043862be9eb7eb22c3784b526340.tar.bz2
credential: handle `credential.<partial-URL>.<key>` again
In the patches for CVE-2020-11008, the ability to specify credential settings in the config for partial URLs got lost. For example, it used to be possible to specify a credential helper for a specific protocol: [credential "https://"] helper = my-https-helper Likewise, it used to be possible to configure settings for a specific host, e.g.: [credential "dev.azure.com"] useHTTPPath = true Let's reinstate this behavior. While at it, increase the test coverage to document and verify the behavior with a couple other categories of partial URLs. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'urlmatch.c')
-rw-r--r--urlmatch.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/urlmatch.c b/urlmatch.c
index 29272a5..33a2ccd 100644
--- a/urlmatch.c
+++ b/urlmatch.c
@@ -572,10 +572,14 @@ int urlmatch_config_entry(const char *var, const char *value, void *cb)
config_url = xmemdupz(key, dot - key);
norm_url = url_normalize_1(config_url, &norm_info, 1);
+ if (norm_url)
+ retval = match_urls(url, &norm_info, &matched);
+ else if (collect->fallback_match_fn)
+ retval = collect->fallback_match_fn(config_url,
+ collect->cb);
+ else
+ retval = 0;
free(config_url);
- if (!norm_url)
- return 0;
- retval = match_urls(url, &norm_info, &matched);
free(norm_url);
if (!retval)
return 0;