@@ -1108,7 +1108,7 @@ ngx_http_modsecurity_header_filter(ngx_http_request_t *r) {
1108
1108
return ngx_http_next_header_filter (r );
1109
1109
}
1110
1110
1111
- if (r != r -> main || !cf -> enable || ctx -> complete ) {
1111
+ if (r != r -> main || !cf -> enable || ctx == NULL || ctx -> complete ) {
1112
1112
return ngx_http_next_header_filter (r );
1113
1113
}
1114
1114
@@ -1140,6 +1140,10 @@ ngx_http_modsecurity_header_filter(ngx_http_request_t *r) {
1140
1140
}
1141
1141
1142
1142
/* SecResponseBodyAccess on, process rules in body filter */
1143
+
1144
+ /* pretend we are ngx_http_header_filter */
1145
+ r -> header_sent = 1 ;
1146
+
1143
1147
r -> filter_need_in_memory = 1 ;
1144
1148
return NGX_OK ;
1145
1149
}
@@ -1156,7 +1160,7 @@ ngx_http_modsecurity_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
1156
1160
cf = ngx_http_get_module_loc_conf (r , ngx_http_modsecurity );
1157
1161
ctx = ngx_http_get_module_ctx (r , ngx_http_modsecurity );
1158
1162
1159
- if (r != r -> main || !cf -> enable || ctx -> complete ) {
1163
+ if (r != r -> main || !cf -> enable || ctx == NULL || ctx -> complete ) {
1160
1164
return ngx_http_next_body_filter (r , in );
1161
1165
}
1162
1166
@@ -1212,6 +1216,7 @@ ngx_http_modsecurity_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
1212
1216
r -> headers_out .content_length = NULL ; /* header filter will set this */
1213
1217
}
1214
1218
1219
+ r -> header_sent = 0 ;
1215
1220
rc = ngx_http_next_header_filter (r );
1216
1221
1217
1222
if (rc == NGX_ERROR || rc > NGX_OK ) {
0 commit comments