puma 5.6.5-java → 5.6.7-java
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puma might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/History.md +14 -1
- data/LICENSE +0 -0
- data/README.md +0 -0
- data/bin/puma-wild +0 -0
- data/docs/architecture.md +0 -0
- data/docs/compile_options.md +0 -0
- data/docs/deployment.md +0 -0
- data/docs/fork_worker.md +0 -0
- data/docs/images/puma-connection-flow-no-reactor.png +0 -0
- data/docs/images/puma-connection-flow.png +0 -0
- data/docs/images/puma-general-arch.png +0 -0
- data/docs/jungle/README.md +0 -0
- data/docs/jungle/rc.d/README.md +0 -0
- data/docs/jungle/rc.d/puma.conf +0 -0
- data/docs/kubernetes.md +0 -0
- data/docs/nginx.md +0 -0
- data/docs/plugins.md +0 -0
- data/docs/rails_dev_mode.md +0 -0
- data/docs/restart.md +0 -0
- data/docs/signals.md +0 -0
- data/docs/stats.md +0 -0
- data/docs/systemd.md +0 -0
- data/ext/puma_http11/PumaHttp11Service.java +0 -0
- data/ext/puma_http11/ext_help.h +0 -0
- data/ext/puma_http11/extconf.rb +0 -0
- data/ext/puma_http11/http11_parser.c +0 -0
- data/ext/puma_http11/http11_parser.h +0 -0
- data/ext/puma_http11/http11_parser.java.rl +0 -0
- data/ext/puma_http11/http11_parser.rl +0 -0
- data/ext/puma_http11/http11_parser_common.rl +0 -0
- data/ext/puma_http11/mini_ssl.c +0 -0
- data/ext/puma_http11/no_ssl/PumaHttp11Service.java +0 -0
- data/ext/puma_http11/org/jruby/puma/Http11.java +0 -0
- data/ext/puma_http11/org/jruby/puma/Http11Parser.java +0 -0
- data/ext/puma_http11/org/jruby/puma/MiniSSL.java +0 -0
- data/ext/puma_http11/puma_http11.c +0 -0
- data/lib/puma/app/status.rb +0 -0
- data/lib/puma/binder.rb +0 -0
- data/lib/puma/cli.rb +0 -0
- data/lib/puma/client.rb +15 -8
- data/lib/puma/cluster/worker.rb +0 -0
- data/lib/puma/cluster/worker_handle.rb +0 -0
- data/lib/puma/cluster.rb +0 -0
- data/lib/puma/commonlogger.rb +0 -0
- data/lib/puma/configuration.rb +0 -0
- data/lib/puma/const.rb +1 -1
- data/lib/puma/control_cli.rb +0 -0
- data/lib/puma/detect.rb +0 -0
- data/lib/puma/dsl.rb +0 -0
- data/lib/puma/error_logger.rb +0 -0
- data/lib/puma/events.rb +0 -0
- data/lib/puma/io_buffer.rb +0 -0
- data/lib/puma/jruby_restart.rb +0 -0
- data/lib/puma/json_serialization.rb +0 -0
- data/lib/puma/launcher.rb +0 -0
- data/lib/puma/minissl/context_builder.rb +0 -0
- data/lib/puma/minissl.rb +0 -0
- data/lib/puma/plugin/tmp_restart.rb +0 -0
- data/lib/puma/plugin.rb +0 -0
- data/lib/puma/puma_http11.jar +0 -0
- data/lib/puma/queue_close.rb +0 -0
- data/lib/puma/rack/builder.rb +0 -0
- data/lib/puma/rack/urlmap.rb +0 -0
- data/lib/puma/rack_default.rb +0 -0
- data/lib/puma/reactor.rb +0 -0
- data/lib/puma/request.rb +0 -0
- data/lib/puma/runner.rb +0 -0
- data/lib/puma/server.rb +0 -0
- data/lib/puma/single.rb +0 -0
- data/lib/puma/state_file.rb +0 -0
- data/lib/puma/systemd.rb +0 -0
- data/lib/puma/thread_pool.rb +0 -0
- data/lib/puma/util.rb +0 -0
- data/lib/puma.rb +5 -3
- data/lib/rack/handler/puma.rb +0 -0
- data/lib/rack/version_restriction.rb +15 -0
- data/tools/Dockerfile +0 -0
- data/tools/trickletest.rb +0 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7739d532cbd298f6d3fe97c1c5e99af45d29b792649705851542ac54aafbd2c
|
4
|
+
data.tar.gz: a066b4636189819ea7109124c470eb2cba5f35083ab7c01b4389552a4acb9220
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 010d1a62e046ccaef614623e59511b235f77eb4d292ef00b415d25335ced57344c758409dff13a88e730df8d644507421567102a9b1fbd7856dc96ed6546ba4e
|
7
|
+
data.tar.gz: 304182f6bf28e4262e622bd9d00e504db9c2682e484c525a36efea6e141891adabdec427c6a8cf619fae6860266865b01fa39056b52a838bb19b285f9320361b
|
data/History.md
CHANGED
@@ -1,8 +1,20 @@
|
|
1
|
+
## 5.6.7 / 2023-08-18
|
2
|
+
|
3
|
+
* Security
|
4
|
+
* Address HTTP request smuggling vulnerabilities with zero-length Content Length header and trailer fields ([GHSA-68xg-gqqm-vgj8](https://github.com/puma/puma/security/advisories/GHSA-68xg-gqqm-vgj8))
|
5
|
+
|
6
|
+
## 5.6.6 / 2023-06-21
|
7
|
+
|
8
|
+
* Bugfix
|
9
|
+
* Allow Puma to be loaded with Rack 3 ([#3166])
|
10
|
+
|
1
11
|
## 5.6.5 / 2022-08-23
|
2
12
|
|
13
|
+
* Feature
|
14
|
+
* Puma::ControlCLI - allow refork command to be sent as a request ([#2868], [#2866])
|
15
|
+
|
3
16
|
* Bugfixes
|
4
17
|
* NullIO#closed should return false ([#2883])
|
5
|
-
* Puma::ControlCLI - allow refork command to be sent as a request ([#2868], [#2866])
|
6
18
|
* [jruby] Fix TLS verification hang ([#2890], [#2729])
|
7
19
|
* extconf.rb - don't use pkg_config('openssl') if '--with-openssl-dir' is used ([#2885], [#2839])
|
8
20
|
* MiniSSL - detect SSL_CTX_set_dh_auto ([#2864], [#2863])
|
@@ -1861,6 +1873,7 @@ be added back in a future date when a java Puma::MiniSSL is added.
|
|
1861
1873
|
* Bugfixes
|
1862
1874
|
* Your bugfix goes here <Most recent on the top, like GitHub> (#Github Number)
|
1863
1875
|
|
1876
|
+
[#3166]:https://github.com/puma/puma/issues/3166 "Issue by @JoeDupuis, merged 2023-06-08"
|
1864
1877
|
[#2883]:https://github.com/puma/puma/pull/2883 "PR by @MSP-Greg, merged 2022-06-02"
|
1865
1878
|
[#2868]:https://github.com/puma/puma/pull/2868 "PR by @MSP-Greg, merged 2022-06-02"
|
1866
1879
|
[#2866]:https://github.com/puma/puma/issues/2866 "Issue by @slondr, closed 2022-06-02"
|
data/LICENSE
CHANGED
File without changes
|
data/README.md
CHANGED
File without changes
|
data/bin/puma-wild
CHANGED
File without changes
|
data/docs/architecture.md
CHANGED
File without changes
|
data/docs/compile_options.md
CHANGED
File without changes
|
data/docs/deployment.md
CHANGED
File without changes
|
data/docs/fork_worker.md
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/docs/jungle/README.md
CHANGED
File without changes
|
data/docs/jungle/rc.d/README.md
CHANGED
File without changes
|
data/docs/jungle/rc.d/puma.conf
CHANGED
File without changes
|
data/docs/kubernetes.md
CHANGED
File without changes
|
data/docs/nginx.md
CHANGED
File without changes
|
data/docs/plugins.md
CHANGED
File without changes
|
data/docs/rails_dev_mode.md
CHANGED
File without changes
|
data/docs/restart.md
CHANGED
File without changes
|
data/docs/signals.md
CHANGED
File without changes
|
data/docs/stats.md
CHANGED
File without changes
|
data/docs/systemd.md
CHANGED
File without changes
|
File without changes
|
data/ext/puma_http11/ext_help.h
CHANGED
File without changes
|
data/ext/puma_http11/extconf.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/ext/puma_http11/mini_ssl.c
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/puma/app/status.rb
CHANGED
File without changes
|
data/lib/puma/binder.rb
CHANGED
File without changes
|
data/lib/puma/cli.rb
CHANGED
File without changes
|
data/lib/puma/client.rb
CHANGED
@@ -45,7 +45,8 @@ module Puma
|
|
45
45
|
|
46
46
|
# chunked body validation
|
47
47
|
CHUNK_SIZE_INVALID = /[^\h]/.freeze
|
48
|
-
CHUNK_VALID_ENDING =
|
48
|
+
CHUNK_VALID_ENDING = Const::LINE_END
|
49
|
+
CHUNK_VALID_ENDING_SIZE = CHUNK_VALID_ENDING.bytesize
|
49
50
|
|
50
51
|
# Content-Length header value validation
|
51
52
|
CONTENT_LENGTH_VALUE_INVALID = /[^\d]/.freeze
|
@@ -347,8 +348,8 @@ module Puma
|
|
347
348
|
cl = @env[CONTENT_LENGTH]
|
348
349
|
|
349
350
|
if cl
|
350
|
-
# cannot contain characters that are not \d
|
351
|
-
if cl =~ CONTENT_LENGTH_VALUE_INVALID
|
351
|
+
# cannot contain characters that are not \d, or be empty
|
352
|
+
if cl =~ CONTENT_LENGTH_VALUE_INVALID || cl.empty?
|
352
353
|
raise HttpParserError, "Invalid Content-Length: #{cl.inspect}"
|
353
354
|
end
|
354
355
|
else
|
@@ -509,7 +510,7 @@ module Puma
|
|
509
510
|
|
510
511
|
while !io.eof?
|
511
512
|
line = io.gets
|
512
|
-
if line.end_with?(
|
513
|
+
if line.end_with?(CHUNK_VALID_ENDING)
|
513
514
|
# Puma doesn't process chunk extensions, but should parse if they're
|
514
515
|
# present, which is the reason for the semicolon regex
|
515
516
|
chunk_hex = line.strip[/\A[^;]+/]
|
@@ -521,13 +522,19 @@ module Puma
|
|
521
522
|
@in_last_chunk = true
|
522
523
|
@body.rewind
|
523
524
|
rest = io.read
|
524
|
-
|
525
|
-
if rest.bytesize < last_crlf_size
|
525
|
+
if rest.bytesize < CHUNK_VALID_ENDING_SIZE
|
526
526
|
@buffer = nil
|
527
|
-
@partial_part_left =
|
527
|
+
@partial_part_left = CHUNK_VALID_ENDING_SIZE - rest.bytesize
|
528
528
|
return false
|
529
529
|
else
|
530
|
-
|
530
|
+
# if the next character is a CRLF, set buffer to everything after that CRLF
|
531
|
+
start_of_rest = if rest.start_with?(CHUNK_VALID_ENDING)
|
532
|
+
CHUNK_VALID_ENDING_SIZE
|
533
|
+
else # we have started a trailer section, which we do not support. skip it!
|
534
|
+
rest.index(CHUNK_VALID_ENDING*2) + CHUNK_VALID_ENDING_SIZE*2
|
535
|
+
end
|
536
|
+
|
537
|
+
@buffer = rest[start_of_rest..-1]
|
531
538
|
@buffer = nil if @buffer.empty?
|
532
539
|
set_ready
|
533
540
|
return true
|
data/lib/puma/cluster/worker.rb
CHANGED
File without changes
|
File without changes
|
data/lib/puma/cluster.rb
CHANGED
File without changes
|
data/lib/puma/commonlogger.rb
CHANGED
File without changes
|
data/lib/puma/configuration.rb
CHANGED
File without changes
|
data/lib/puma/const.rb
CHANGED
@@ -100,7 +100,7 @@ module Puma
|
|
100
100
|
# too taxing on performance.
|
101
101
|
module Const
|
102
102
|
|
103
|
-
PUMA_VERSION = VERSION = "5.6.
|
103
|
+
PUMA_VERSION = VERSION = "5.6.7".freeze
|
104
104
|
CODE_NAME = "Birdie's Version".freeze
|
105
105
|
|
106
106
|
PUMA_SERVER_STRING = ['puma', PUMA_VERSION, CODE_NAME].join(' ').freeze
|
data/lib/puma/control_cli.rb
CHANGED
File without changes
|
data/lib/puma/detect.rb
CHANGED
File without changes
|
data/lib/puma/dsl.rb
CHANGED
File without changes
|
data/lib/puma/error_logger.rb
CHANGED
File without changes
|
data/lib/puma/events.rb
CHANGED
File without changes
|
data/lib/puma/io_buffer.rb
CHANGED
File without changes
|
data/lib/puma/jruby_restart.rb
CHANGED
File without changes
|
File without changes
|
data/lib/puma/launcher.rb
CHANGED
File without changes
|
File without changes
|
data/lib/puma/minissl.rb
CHANGED
File without changes
|
File without changes
|
data/lib/puma/plugin.rb
CHANGED
File without changes
|
data/lib/puma/puma_http11.jar
CHANGED
Binary file
|
data/lib/puma/queue_close.rb
CHANGED
File without changes
|
data/lib/puma/rack/builder.rb
CHANGED
File without changes
|
data/lib/puma/rack/urlmap.rb
CHANGED
File without changes
|
data/lib/puma/rack_default.rb
CHANGED
File without changes
|
data/lib/puma/reactor.rb
CHANGED
File without changes
|
data/lib/puma/request.rb
CHANGED
File without changes
|
data/lib/puma/runner.rb
CHANGED
File without changes
|
data/lib/puma/server.rb
CHANGED
File without changes
|
data/lib/puma/single.rb
CHANGED
File without changes
|
data/lib/puma/state_file.rb
CHANGED
File without changes
|
data/lib/puma/systemd.rb
CHANGED
File without changes
|
data/lib/puma/thread_pool.rb
CHANGED
File without changes
|
data/lib/puma/util.rb
CHANGED
File without changes
|
data/lib/puma.rb
CHANGED
@@ -10,9 +10,11 @@ require 'stringio'
|
|
10
10
|
|
11
11
|
require 'thread'
|
12
12
|
|
13
|
+
# extension files should not be loaded with `require_relative`
|
13
14
|
require 'puma/puma_http11'
|
14
|
-
|
15
|
-
|
15
|
+
require_relative 'puma/detect'
|
16
|
+
require_relative 'puma/json_serialization'
|
17
|
+
require_relative 'rack/version_restriction'
|
16
18
|
|
17
19
|
module Puma
|
18
20
|
autoload :Const, 'puma/const'
|
@@ -23,7 +25,7 @@ module Puma
|
|
23
25
|
# not in minissl.rb
|
24
26
|
HAS_SSL = const_defined?(:MiniSSL, false) && MiniSSL.const_defined?(:Engine, false)
|
25
27
|
|
26
|
-
HAS_UNIX_SOCKET = Object.const_defined?
|
28
|
+
HAS_UNIX_SOCKET = Object.const_defined?(:UNIXSocket) && !IS_WINDOWS
|
27
29
|
|
28
30
|
if HAS_SSL
|
29
31
|
require 'puma/minissl'
|
data/lib/rack/handler/puma.rb
CHANGED
File without changes
|
@@ -0,0 +1,15 @@
|
|
1
|
+
begin
|
2
|
+
begin
|
3
|
+
# rack/version exists in Rack 2.2.0 and later, compatible with Ruby 2.3 and later
|
4
|
+
# we prefer to not load Rack
|
5
|
+
require 'rack/version'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rack'
|
8
|
+
end
|
9
|
+
|
10
|
+
# Rack.release is needed for Rack v1, Rack::RELEASE was added in v2
|
11
|
+
if Gem::Version.new(Rack.release) >= Gem::Version.new("3.0.0")
|
12
|
+
raise StandardError.new "Puma 5 is not compatible with Rack 3, please upgrade to Puma 6 or higher."
|
13
|
+
end
|
14
|
+
rescue LoadError
|
15
|
+
end
|
data/tools/Dockerfile
CHANGED
File without changes
|
data/tools/trickletest.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.6.
|
4
|
+
version: 5.6.7
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Evan Phoenix
|
@@ -17,8 +17,8 @@ dependencies:
|
|
17
17
|
- !ruby/object:Gem::Version
|
18
18
|
version: '2.0'
|
19
19
|
name: nio4r
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
@@ -115,6 +115,7 @@ files:
|
|
115
115
|
- lib/puma/thread_pool.rb
|
116
116
|
- lib/puma/util.rb
|
117
117
|
- lib/rack/handler/puma.rb
|
118
|
+
- lib/rack/version_restriction.rb
|
118
119
|
- tools/Dockerfile
|
119
120
|
- tools/trickletest.rb
|
120
121
|
homepage: https://puma.io
|
@@ -140,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
141
|
- !ruby/object:Gem::Version
|
141
142
|
version: '0'
|
142
143
|
requirements: []
|
143
|
-
rubygems_version: 3.
|
144
|
+
rubygems_version: 3.3.26
|
144
145
|
signing_key:
|
145
146
|
specification_version: 4
|
146
147
|
summary: Puma is a simple, fast, threaded, and highly parallel HTTP 1.1 server for
|