b53daca8cdd27a292f6ae01f8aeb822a2b4468dc braney Wed Nov 14 11:29:56 2018 -0800 fix bug found in code review. Thanks Chris! diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 8c50b44..5a950ec 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -3637,34 +3637,33 @@ filterBy->useIndex = FALSE; filterBy->slValues = slNameListFromComma(value); chopUpValues(filterBy); if (cart != NULL) { char suffix[256]; safef(suffix, sizeof(suffix), "%s.%s", "filterBy", filterBy->column); boolean parentLevel = isNameAtParentLevel(tdb,tdb->track); if (cartLookUpVariableClosestToHome(cart,tdb,parentLevel,suffix,&(filterBy->htmlName))) { filterBy->slChoices = cartOptionalSlNameList(cart,filterBy->htmlName); freeMem(filterBy->htmlName); } } -// Note: cannot use found name above because that may be at a higher (composite/view) level -int len = strlen(tdb->track) + strlen(filterBy->column) + 15; -filterBy->htmlName = needMem(len); -safef(filterBy->htmlName, len, "%s.%s.%s", name,"filterBy",filterBy->column); +struct dyString *dy = newDyString(128); +dyStringPrintf(dy, "%s.%s.%s", name, "filterBy", filterBy->column); +filterBy->htmlName = dy->string; return filterBy; } filterBy_t *filterByValues(struct trackDb *tdb, struct cart *cart, struct slName *filterValues, char *name) /* Build a filterBy_t list from tdb variables of the form *FilterValues */ { struct asObject *as = asForTdb(NULL, tdb); filterBy_t *filterByList = NULL, *filter; struct slName *fieldFilter; while ((fieldFilter = slPopHead(&filterValues)) != NULL) { if ((filter = buildFilterBy(tdb, cart, as, fieldFilter->name, name)) != NULL) slAddHead(&filterByList, filter); }