3c336b221ead841fd5504ce0652874f5901e979c jcasper Thu Mar 10 20:12:17 2022 -0800 Fixing a couple of injection vulnerabilities, refs #29086 diff --git src/hg/hgSession/hgSession.c src/hg/hgSession/hgSession.c index d524fcb..422fe4d 100644 --- src/hg/hgSession/hgSession.c +++ src/hg/hgSession/hgSession.c @@ -1115,36 +1115,37 @@ "Created on %s.
\n", firstUse); /* Print custom track counts per assembly */ struct cart *tmpCart = cartNew(NULL,NULL,NULL,NULL); struct sqlConnection *conn2 = hConnectCentral(); cartLoadUserSession(conn2, userName, sessionName, tmpCart, NULL, NULL); hDisconnectCentral(&conn2); hubConnectLoadHubs(tmpCart); cartCheckForCustomTracks(tmpCart, dyMessage); if (gotSettings) { description = replaceChars(description, "\\\\", "\\__ESC__"); description = replaceChars(description, "\\r", "\r"); description = replaceChars(description, "\\n", "\n"); description = replaceChars(description, "\\__ESC__", "\\"); + char *encDescription = htmlEncode(description); dyStringPrintf(dyMessage, "Description:
\n" "
\n", hgsNewSessionDescription, hgsNewSessionDescription, 5, 80, - description); + encDescription); jsOnEventById("change" , hgsNewSessionDescription, highlightAccChanges); jsOnEventById("keypress" , hgsNewSessionDescription, highlightAccChanges); } dyStringAppend(dyMessage, "\n"); sqlFreeResult(&sr); } else errAbort("doSessionDetail: got no results from query:
\n%s\n", query); return dyStringCannibalize(&dyMessage); } char *doUpdateSessions(char *userName) /* Look for cart variables matching prefixes for sharing/unsharing, * loading or deleting a previously saved session.