func: static int CVE_2015_0253_VULN_read_request_line(request_rec *r, apr_bucket_brigade *bb) const char * ll ; const char * pro ; unsigned int major = 1 , minor = 0 ; char http [ 5 ] ; apr_size_t len ; int num_blank_lines = 0 ; int max_blank_lines = r -> server -> limit_req_fields ; if ( max_blank_lines <= 0 )  max_blank_lines = DEFAULT_LIMIT_REQUEST_FIELDS; apr_status_t rv ; r -> the_request = NULL; rv = ap_rgetline ( & ( r -> the_request ) , ( apr_size_t ) ( r -> server -> limit_req_line + 2 ) , & len , r , 0 , bb ); if ( rv != APR_SUCCESS )  while ( ( len <= 0 ) && ( ++ num_blank_lines < max_blank_lines ) )  r -> request_time = apr_time_now ( ); ll = r -> the_request; r -> method = ap_getword_white ( r -> pool , & ll ); r -> method_number = ap_method_number_of ( r -> method ); if ( r -> method_number == M_GET && r -> method [ 0 ] == 'H' )  r -> header_only = 1; if ( ll [ 0 ] )  r -> assbackwards = 0; pro = ll; len = strlen ( ll ); r -> assbackwards = 1; pro = "HTTP/0.9"; len = 8; r -> protocol = apr_pstrmemdup ( r -> pool , pro , len ); if ( len == 8 && pro [ 0 ] == 'H' && pro [ 1 ] == 'T' && pro [ 2 ] == 'T' && pro [ 3 ] == 'P' && pro [ 4 ] == '/' && apr_isdigit ( pro [ 5 ] ) && pro [ 6 ] == '.' && apr_isdigit ( pro [ 7 ] ) )  if ( 3 == sscanf ( r -> protocol , "%4s/%u.%u" , http , & major , & minor ) && ( strcasecmp ( "http" , http ) == 0 ) && ( minor < HTTP_VERSION ( 1 , 0 ) ) )  