0325ff9542311af737bd2eadd9b105d863c79574 chmalee Tue Sep 22 10:58:54 2026 -0700 Make trackHubSkipHubName not return invalid pointers on bad input names, refs #38414 diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c index a64a5e7d4d2..e3d2f0993f6 100644 --- src/hg/lib/trackHub.c +++ src/hg/lib/trackHub.c @@ -1282,31 +1282,34 @@ if (under) { *under = 0; return ret; } return NULL; } char *trackHubSkipHubName(char *name) /* Skip the hub_#_ prefix in a hub name. */ { if ((name == NULL) || !startsWith("hub_", name)) return name; -return strchr(&name[4], '_') + 1; +char *ptr = strchr(&name[4], '_'); +if (ptr == NULL) + return name; +return ptr + 1; } struct trackDb *findTdbByBareName(struct trackDb *tdbList, char *bareName) /* Recursively search tdbList (and subtracks) for a tdb whose bare track name matches. */ { struct trackDb *tdb; for (tdb = tdbList; tdb != NULL; tdb = tdb->next) { if (sameString(trackHubSkipHubName(tdb->track), bareName)) return tdb; struct trackDb *found = findTdbByBareName(tdb->subtracks, bareName); if (found != NULL) return found; } return NULL;