074ea922bc80e0c46b93fb22b91426770022e4e2 braney Tue Aug 18 10:59:40 2026 -0700 lib, cheapcgi: encode some JSON tags and HTML attributes consistently, refs #38123 diff --git src/hg/lib/hui.c src/hg/lib/hui.c index e7e26e49800..982ef64ad30 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -6090,31 +6090,31 @@ char defaultColor[16]; safef(defaultColor, sizeof(defaultColor), "#%02x%02x%02x", tdb->colorR, tdb->colorG, tdb->colorB); char *rawCartValue = cartOptionalString(cart, varName); boolean hasOverride = (rawCartValue != NULL && rawCartValue[0] != '\0'); char *colorValue = hasOverride ? rawCartValue : defaultColor; char checkVar[1024]; safef(checkVar, sizeof(checkVar), "%s.colorOverrideOn", name); boolean isOn = cartUsualBoolean(cart, checkVar, hasOverride); printf("
Override track color: "); cgiMakeCheckBox(checkVar, isOn); printf(" ", - varName, varName, htmlEncode(colorValue)); // colorValue may be a cart override, escape (XSS) + varName, varName, htmlEncode(colorValue)); // colorValue may be a cart override, escape printf(" \n", varName); jsInlineF( "(function() {\n" " var textEl = document.getElementById('%s_text');\n" " var pickerEl = document.getElementById('%s_picker');\n" " var checkEl = document.querySelector('input[type=checkbox][name=\"%s\"]');\n" " $(pickerEl).spectrum({\n" " color: textEl.value,\n" " showPalette: true,\n" " showSelectionPalette: true,\n" " showInitial:true,\n" " showInput: true,\n" " preferredFormat: 'hex',\n" " hideAfterPaletteSelect: true,\n" " change: function(color) { textEl.value = color.toHexString(); checkEl.checked = true; }\n"