3c336b221ead841fd5504ce0652874f5901e979c jcasper Thu Mar 10 20:12:17 2022 -0800 Fixing a couple of injection vulnerabilities, refs #29086 diff --git src/hg/hgPublicSessions/hgPublicSessions.c src/hg/hgPublicSessions/hgPublicSessions.c index c93917d..9565939 100644 --- src/hg/hgPublicSessions/hgPublicSessions.c +++ src/hg/hgPublicSessions/hgPublicSessions.c @@ -209,57 +209,58 @@ jsOnEventById("change", "sortMethod", "changeSort();"); printf ("
Screenshot | \n" "Session Properties | \n" "Creation Date | \n" "Use Count | \n" "||
---|---|---|---|---|---|
",
dyStringContents(thisSession->sessionUrl));
printf (" | \n", thisSession->imgUri);
}
else
{
printf ("\t\t\n"); printf ("\t\tClick Here to view | \n",
dyStringContents(thisSession->sessionUrl));
}
struct hash *settingsHash = raFromString(thisSession->settings);
- settingString = (char*) hashFindVal(settingsHash, "description");
- if (settingString == NULL)
- settingString = "";
+ descriptionString = (char*) hashFindVal(settingsHash, "description");
+ if (descriptionString == NULL)
+ descriptionString = "";
else
{
- settingString = replaceChars(settingString, "\\\\", "\\__ESC__");
- settingString = replaceChars(settingString, "\\r", "\r");
- settingString = replaceChars(settingString, "\\n", "\n");
- settingString = replaceChars(settingString, "\\__ESC__", "\\");
+ descriptionString = replaceChars(descriptionString, "\\\\", "\\__ESC__");
+ descriptionString = replaceChars(descriptionString, "\\r", "\r");
+ descriptionString = replaceChars(descriptionString, "\\n", "\n");
+ descriptionString = replaceChars(descriptionString, "\\__ESC__", "\\");
}
- printf ("\t\tDescription: %s \n", settingString); + char *safeDescription = htmlEncode(descriptionString); + printf ("\t\t | Description: %s \n", safeDescription); printf ("\t\tAuthor: %s \n", thisSession->userName); printf ("\t\tSession Name: %s \n", thisSession->sessionName); printf ("\t\tGenome Assembly: %s \n", thisSession->db); printf ("\t\tCreation Date: %s \n", thisSession->firstUse); printf ("\t\tViews: %ld\n", thisSession->useCount); printf ("\t\t | \n");
struct tm creationDate;
ZeroVar(&creationDate);
strptime(thisSession->firstUse, "%Y-%m-%d %T", &creationDate);
/* Hidden columns */
printf ("\t\t%ld | \n", mktime(&creationDate)); printf ("\t\t%ld | \n", thisSession->useCount); printf ("\t