fix possible XSS in error messages

This commit is contained in:
Stefan Esser 2003-03-08 15:20:12 +00:00
parent 1f54605723
commit 4535ff1756

View file

@ -439,6 +439,14 @@ PHPAPI void php_verror(const char *docref, const char *params, int type, const c
buffer_len = vspprintf(&buffer, 0, format, args); buffer_len = vspprintf(&buffer, 0, format, args);
if (buffer) { if (buffer) {
if (PG(html_errors)) {
int len;
char *replace = php_escape_html_entities(buffer, buffer_len, &len, 0, ENT_COMPAT, NULL TSRMLS_CC);
efree(buffer);
buffer = replace;
buffer_len = len;
}
if (docref && docref[0] == '#') { if (docref && docref[0] == '#') {
docref_target = strchr(docref, '#'); docref_target = strchr(docref, '#');
docref = NULL; docref = NULL;
@ -571,6 +579,14 @@ static void php_error_cb(int type, const char *error_filename, const uint error_
TSRMLS_FETCH(); TSRMLS_FETCH();
buffer_len = vspprintf(&buffer, PG(log_errors_max_len), format, args); buffer_len = vspprintf(&buffer, PG(log_errors_max_len), format, args);
if (PG(html_errors)) {
int len;
char *replace = php_escape_html_entities(buffer, buffer_len, &len, 0, ENT_COMPAT, NULL TSRMLS_CC);
efree(buffer);
buffer = replace;
buffer_len = len;
}
if (PG(ignore_repeated_errors)) { if (PG(ignore_repeated_errors)) {
if (strncmp(last_error.buf, buffer, sizeof(last_error.buf)) if (strncmp(last_error.buf, buffer, sizeof(last_error.buf))
|| (!PG(ignore_repeated_source) || (!PG(ignore_repeated_source)