mirror of
				https://github.com/puma/puma.git
				synced 2022-11-09 13:48:40 -05:00 
			
		
		
		
	Co-authored-by: Nate Berkopec <nate.berkopec@gmail.com>
This commit is contained in:
		
							parent
							
								
									8d3db816fa
								
							
						
					
					
						commit
						a04fc21a56
					
				
					 4 changed files with 8 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -6,6 +6,7 @@
 | 
			
		|||
  * Do not set user_config to quiet by default to allow for file config (#2074)
 | 
			
		||||
  * `GC.compact` is called before fork if available (#2093)
 | 
			
		||||
  * Add `requests_count` to workers stats. (#2106)
 | 
			
		||||
  * Increases maximum URI path length from 2048 to 8196 bytes (#2167)
 | 
			
		||||
 | 
			
		||||
* Deprecations, Removals and Breaking API Changes
 | 
			
		||||
  * `Puma.stats` now returns a Hash instead of a JSON string (#2086)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,8 +30,8 @@ public class Http11 extends RubyObject {
 | 
			
		|||
    public final static String MAX_REQUEST_URI_LENGTH_ERR = "HTTP element REQUEST_URI is longer than the 12288 allowed length.";
 | 
			
		||||
    public final static int MAX_FRAGMENT_LENGTH = 1024;
 | 
			
		||||
    public final static String MAX_FRAGMENT_LENGTH_ERR = "HTTP element REQUEST_PATH is longer than the 1024 allowed length.";
 | 
			
		||||
    public final static int MAX_REQUEST_PATH_LENGTH = 2048;
 | 
			
		||||
    public final static String MAX_REQUEST_PATH_LENGTH_ERR = "HTTP element REQUEST_PATH is longer than the 2048 allowed length.";
 | 
			
		||||
    public final static int MAX_REQUEST_PATH_LENGTH = 8192;
 | 
			
		||||
    public final static String MAX_REQUEST_PATH_LENGTH_ERR = "HTTP element REQUEST_PATH is longer than the 8192 allowed length.";
 | 
			
		||||
    public final static int MAX_QUERY_STRING_LENGTH = 1024 * 10;
 | 
			
		||||
    public final static String MAX_QUERY_STRING_LENGTH_ERR = "HTTP element QUERY_STRING is longer than the 10240 allowed length.";
 | 
			
		||||
    public final static int MAX_HEADER_LENGTH = 1024 * (80 + 32);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,7 +54,7 @@ DEF_MAX_LENGTH(FIELD_NAME, 256);
 | 
			
		|||
DEF_MAX_LENGTH(FIELD_VALUE, 80 * 1024);
 | 
			
		||||
DEF_MAX_LENGTH(REQUEST_URI, 1024 * 12);
 | 
			
		||||
DEF_MAX_LENGTH(FRAGMENT, 1024); /* Don't know if this length is specified somewhere or not */
 | 
			
		||||
DEF_MAX_LENGTH(REQUEST_PATH, 2048);
 | 
			
		||||
DEF_MAX_LENGTH(REQUEST_PATH, 8196);
 | 
			
		||||
DEF_MAX_LENGTH(QUERY_STRING, (1024 * 10));
 | 
			
		||||
DEF_MAX_LENGTH(HEADER, (1024 * (80 + 32)));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -144,15 +144,15 @@ class Http11ParserTest < Minitest::Test
 | 
			
		|||
    parser = Puma::HttpParser.new
 | 
			
		||||
    req = {}
 | 
			
		||||
 | 
			
		||||
    # Support URI path length to a max of 2048
 | 
			
		||||
    path = "/" + rand_data(1000, 100)
 | 
			
		||||
    # Support URI path length to a max of 8196
 | 
			
		||||
    path = "/" + rand_data(7000, 100)
 | 
			
		||||
    http = "GET #{path} HTTP/1.1\r\n\r\n"
 | 
			
		||||
    parser.execute(req, http, 0)
 | 
			
		||||
    assert_equal path, req['REQUEST_PATH']
 | 
			
		||||
    parser.reset
 | 
			
		||||
 | 
			
		||||
    # Raise exception if URI path length > 2048
 | 
			
		||||
    path = "/" + rand_data(3000, 100)
 | 
			
		||||
    # Raise exception if URI path length > 8196
 | 
			
		||||
    path = "/" + rand_data(9000, 100)
 | 
			
		||||
    http = "GET #{path} HTTP/1.1\r\n\r\n"
 | 
			
		||||
    assert_raises Puma::HttpParserError do
 | 
			
		||||
      parser.execute(req, http, 0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue