comparison src/http/ngx_http_parse.c @ 666:bf8b55a5ac89 NGINX_1_1_17

nginx 1.1.17 *) Security: content of previously freed memory might be sent to a client if backend returned specially crafted response. Thanks to Matthew Daley. *) Bugfix: in the embedded perl module if used from SSI. Thanks to Matthew Daley. *) Bugfix: in the ngx_http_uwsgi_module.
author Igor Sysoev <http://sysoev.ru>
date Thu, 15 Mar 2012 00:00:00 +0400
parents d0f7a625f27c
children 9fbf3ad94cbf
comparison
equal deleted inserted replaced
665:a8821023989f 666:bf8b55a5ac89
872 r->lowcase_header[0] = c; 872 r->lowcase_header[0] = c;
873 i = 1; 873 i = 1;
874 break; 874 break;
875 } 875 }
876 876
877 if (ch == '\0') {
878 return NGX_HTTP_PARSE_INVALID_HEADER;
879 }
880
877 r->invalid_header = 1; 881 r->invalid_header = 1;
878 882
879 break; 883 break;
880 884
881 } 885 }
934 { 938 {
935 state = sw_ignore_line; 939 state = sw_ignore_line;
936 break; 940 break;
937 } 941 }
938 942
943 if (ch == '\0') {
944 return NGX_HTTP_PARSE_INVALID_HEADER;
945 }
946
939 r->invalid_header = 1; 947 r->invalid_header = 1;
940 948
941 break; 949 break;
942 950
943 /* space* before header value */ 951 /* space* before header value */
952 break; 960 break;
953 case LF: 961 case LF:
954 r->header_start = p; 962 r->header_start = p;
955 r->header_end = p; 963 r->header_end = p;
956 goto done; 964 goto done;
965 case '\0':
966 return NGX_HTTP_PARSE_INVALID_HEADER;
957 default: 967 default:
958 r->header_start = p; 968 r->header_start = p;
959 state = sw_value; 969 state = sw_value;
960 break; 970 break;
961 } 971 }
973 state = sw_almost_done; 983 state = sw_almost_done;
974 break; 984 break;
975 case LF: 985 case LF:
976 r->header_end = p; 986 r->header_end = p;
977 goto done; 987 goto done;
988 case '\0':
989 return NGX_HTTP_PARSE_INVALID_HEADER;
978 } 990 }
979 break; 991 break;
980 992
981 /* space* before end of header line */ 993 /* space* before end of header line */
982 case sw_space_after_value: 994 case sw_space_after_value:
986 case CR: 998 case CR:
987 state = sw_almost_done; 999 state = sw_almost_done;
988 break; 1000 break;
989 case LF: 1001 case LF:
990 goto done; 1002 goto done;
1003 case '\0':
1004 return NGX_HTTP_PARSE_INVALID_HEADER;
991 default: 1005 default:
992 state = sw_value; 1006 state = sw_value;
993 break; 1007 break;
994 } 1008 }
995 break; 1009 break;