@@ -1431,18 +1431,20 @@ static int var_multipart_part_headers_generate(modsec_rec *msr, msre_var *var, m
14311431
14321432 /* If we had a match add this argument to the collection. */
14331433 if (match ) {
1434- for (j = 0 ; j < parts [i ]-> header_lines -> nelts ; j ++ ) {
1435- char * header_line = ((char * * )parts [i ]-> header_lines -> elts )[j ];
1436- msre_var * rvar = apr_pmemdup (mptmp , var , sizeof (msre_var ));
1437-
1438- rvar -> value = header_line ;
1439- rvar -> value_len = strlen (rvar -> value );
1440- rvar -> name = apr_psprintf (mptmp , "MULTIPART_PART_HEADERS:%s" ,
1441- log_escape_nq (mptmp , parts [i ]-> name ));
1442- apr_table_addn (vartab , rvar -> name , (void * )rvar );
1443-
1444- count ++ ;
1445- }
1434+ if (parts [i ]-> header_lines ) { /* this NULL check shouldn't be necessary */
1435+ for (j = 0 ; j < parts [i ]-> header_lines -> nelts ; j ++ ) {
1436+ char * header_line = ((char * * )parts [i ]-> header_lines -> elts )[j ];
1437+ msre_var * rvar = apr_pmemdup (mptmp , var , sizeof (msre_var ));
1438+
1439+ rvar -> value = header_line ;
1440+ rvar -> value_len = strlen (rvar -> value );
1441+ rvar -> name = apr_psprintf (mptmp , "MULTIPART_PART_HEADERS:%s" ,
1442+ log_escape_nq (mptmp , parts [i ]-> name ));
1443+ apr_table_addn (vartab , rvar -> name , (void * )rvar );
1444+
1445+ count ++ ;
1446+ }
1447+ }
14461448 }
14471449 }
14481450
0 commit comments