9f7cf671abc2cf3179d3fc945129d290d87470ff
galt
  Wed Dec 3 17:59:58 2025 -0800
Suggested by Jonathan from code review, refs #34544

diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c
index 1878b8a9b0f..0df9264a79b 100644
--- src/hg/lib/trackHub.c
+++ src/hg/lib/trackHub.c
@@ -900,31 +900,31 @@
 {
 if (trackDbSetting(tdb, setting))
     errAbort("Forbidden setting '%s' in hub %s genome %s track %s", setting,
         hub->url, genome->name, tdb->track);
 }
 
 static void expandOneUrl(struct hash *settingsHash, char *hubUrl, char *variable)
 {
 struct hashEl *hel = hashLookup(settingsHash, variable);
 if (hel != NULL)
     {
     char *oldVal = hel->val;
     hel->val = trackHubRelativeUrl(hubUrl, oldVal);
     char *newPath = (char *) hel->val;
 
-    if (strchr(hubUrl, ':') && (!strchr(newPath, ':')))
+    if (hasProtocol(hubUrl) && !hasProtocol(newPath))
 	{
 	// allow local url with udc.localDir path prefix
 	char *prefix = cfgOption("udc.localDir");
 	if (!(prefix && startsWith(prefix, newPath)))
 	    {
 	    errAbort("setting %s local URL %s not allowed with non-local host URL %s", variable, newPath, hubUrl);
 	    }
 	}
     freeMem(oldVal);
     }
 }
 
 static void expandBigDataUrl(struct trackHub *hub, struct trackHubGenome *genome,
 	struct trackDb *tdb)
 /* Expand bigDataUrls so that no longer relative to genome->trackDbFile */