Mercurial > hg > nginx
comparison src/http/ngx_http_parse.c @ 3107:088a340003f4 stable-0.5
merge r3076, r3080:
fix segfault when a header starts with "\rX"
and logging is set to info or debug level
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 07 Sep 2009 12:02:37 +0000 |
parents | 8ca85249de24 |
children | 9ec5a0857fcd |
comparison
equal
deleted
inserted
replaced
3106:634271b0cf2d | 3107:088a340003f4 |
---|---|
736 | 736 |
737 switch (state) { | 737 switch (state) { |
738 | 738 |
739 /* first char */ | 739 /* first char */ |
740 case sw_start: | 740 case sw_start: |
741 r->header_name_start = p; | |
741 r->invalid_header = 0; | 742 r->invalid_header = 0; |
742 | 743 |
743 switch (ch) { | 744 switch (ch) { |
744 case CR: | 745 case CR: |
745 r->header_end = p; | 746 r->header_end = p; |
748 case LF: | 749 case LF: |
749 r->header_end = p; | 750 r->header_end = p; |
750 goto header_done; | 751 goto header_done; |
751 default: | 752 default: |
752 state = sw_name; | 753 state = sw_name; |
753 r->header_name_start = p; | |
754 | 754 |
755 c = lowcase[ch]; | 755 c = lowcase[ch]; |
756 | 756 |
757 if (c) { | 757 if (c) { |
758 hash = ngx_hash(0, c); | 758 hash = ngx_hash(0, c); |