4e84edcbf2bd31c87f184b2c63c92ad8691638a7 galt Thu Oct 6 01:35:15 2016 -0700 hgGateway needs early warn handlers. htmshell.c needs to also write error to stderr on early errors. diff --git src/lib/htmshell.c src/lib/htmshell.c index 7539218..56e645d 100644 --- src/lib/htmshell.c +++ src/lib/htmshell.c @@ -34,40 +34,47 @@ } void htmlNoEscape() { NoEscape = TRUE; } void htmlDoEscape() { NoEscape = FALSE; } void htmlVaEncodeErrorText(char *format, va_list args) /* Write an error message encoded against XSS. */ { +va_list argscp; +va_copy(argscp, args); char warning[1024]; int sz = vaHtmlSafefNoAbort(warning, sizeof(warning), format, args, TRUE, FALSE); if (sz < 0) { safecpy(warning, sizeof(warning), "Low level error in htmlSafef. See error logs for details."); vfprintf(stderr, format, args); fprintf(stderr, "\n"); fflush(stderr); } fprintf(stdout, "%s\n", warning); +/* write warning/error message to stderr so they get logged. */ +vfprintf(stderr, format, argscp); +fprintf(stderr, "\n"); +fflush(stderr); +va_end(argscp); } void htmlVaParagraph(char *line, va_list args) /* Print a line in it's own paragraph. */ { fputs("<P>", stdout); vfprintf(stdout, line, args); fputs("</P>\n", stdout); } void htmlParagraph(char *line, ...) { va_list args; va_start(args, line);