|
|
|
@ -566,6 +566,19 @@ SAPI_API int sapi_header_op(sapi_header_op_enum op, void *arg TSRMLS_DC) |
|
|
|
while(isspace(header_line[header_line_len-1])) |
|
|
|
header_line[--header_line_len]='\0'; |
|
|
|
|
|
|
|
/* new line safety check */ |
|
|
|
{ |
|
|
|
char *s = header_line, *e = header_line + header_line_len, *p; |
|
|
|
while (s < e && (p = memchr(s, '\n', (e - s)))) { |
|
|
|
if (*(p + 1) == ' ' || *(p + 1) == '\t') { |
|
|
|
s = p + 1; |
|
|
|
continue; |
|
|
|
} |
|
|
|
efree(header_line); |
|
|
|
sapi_module.sapi_error(E_WARNING, "Header may not contain more then a single header, new line detected."); |
|
|
|
return FAILURE; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
sapi_header.header = header_line; |
|
|
|
sapi_header.header_len = header_line_len; |
|
|
|
|