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.