size_t http_header_line_length;
if (php_stream_get_line(stream, ZSTR(http_header_line), HTTP_HEADER_BLOCK_SIZE, &http_header_line_length) && *http_header_line != '\n' && *http_header_line != '\r') {
char *e = http_header_line + http_header_line_length - 1;
- if (*e != '\n') { /* partial header */
- php_stream_get_line(stream, ZSTR(http_header_line), HTTP_HEADER_BLOCK_SIZE, &http_header_line_length);
- continue;
+ if (*e != '\n') {
+ do { /* partial header */
+ php_stream_get_line(stream, ZSTR(http_header_line), HTTP_HEADER_BLOCK_SIZE, &http_header_line_length);
+ e = http_header_line + http_header_line_length - 1;
+ } while (*e != '\n');
}
while (*e == '\n' || *e == '\r') {
e--;