From b2e929c9fb31933cd4aeef841447c7db88db234c Mon Sep 17 00:00:00 2001 From: Jaakko Keränen Date: Wed, 9 Sep 2020 12:12:15 +0300 Subject: GmCerts: Checking if an identity is in use --- src/gmcerts.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/gmcerts.c') diff --git a/src/gmcerts.c b/src/gmcerts.c index 6370057d..484f8766 100644 --- a/src/gmcerts.c +++ b/src/gmcerts.c @@ -145,7 +145,15 @@ iBool isUsedOn_GmIdentity(const iGmIdentity *d, const iString *url) { size_t pos = iInvalidPos; locate_StringSet(d->useUrls, url, &pos); if (pos < size_StringSet(d->useUrls)) { - return startsWithCase_String(url, cstr_String(constAt_StringSet(d->useUrls, pos))); + if (!cmpStringCase_String(url, constAt_StringSet(d->useUrls, pos))) { + return iTrue; + } + } + if (pos > 0) { + /* URLs with a longer path will be following the shorter URL(s). */ + if (startsWithCase_String(url, cstr_String(constAt_StringSet(d->useUrls, pos - 1)))) { + return iTrue; + } } return iFalse; } -- cgit v1.2.3