thin 1.8.0 → 1.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 285d7efc73ff2e6e29a8789706c605cc2a2b5a1d25313a53d72954dd5a8adbe7
4
- data.tar.gz: 24642b42692477ba60cb63cb0ffa49dcf63cc0634708a349d8fac94d08989b74
3
+ metadata.gz: f0681c9fc49913fca3b6478faa3ce96a449e3926e09d5986fca0b1ace57d6fc7
4
+ data.tar.gz: 44f1f7fd3b3e176939178745df3116286b2b32cd5c01d0d6fe19bf4637e5aac7
5
5
  SHA512:
6
- metadata.gz: ab7de3338f8d8694ed44a04cf785e78a0ce85de874d7bde4d96c6801b1e85190a3cbd33d8fe16a32aedc09eab9f1caad4a37ce51dc5997c32b5550da6d2fcffc
7
- data.tar.gz: 19c45bc3a6f403daffe6a6c66b89bca01c597edb5b8c6ada110834c52fac0f639746f9b51ce5a3ca42c8f2fa013c929929b64b3737819ce83e5dff257e8a328a
6
+ metadata.gz: 6e476bb431b484071fff7240da1d17265ad07571951697ca9d023e457268911b2d3c37451236aabf6ff57b59eb9d30c51479bd3ef3f39aadbf6ce830f5c212a8
7
+ data.tar.gz: '094627fc3d7da6e51c64059987625c9d5c1bbeec5b4766343b41aa00a1ebb769ea89ed7cf14ba9c6805450ffc82b92d7abd1ae7b4138c37ff7054d26fe337e69'
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ == 1.8.1 Infinite Smoothie
2
+ * Fix possible HTTP Response Splitting
3
+
4
+ == 1.8.0 Possessed Pickle
5
+ * Many things
6
+
1
7
  == 1.7.2 Bachmanity
2
8
  * Add config support for ssl_version and ssl_cipher_list [frameworked]
3
9
 
data/lib/thin/headers.rb CHANGED
@@ -1,9 +1,14 @@
1
1
  module Thin
2
+ # Raised when an header is not valid
3
+ # and the server can not process it.
4
+ class InvalidHeader < StandardError; end
5
+
2
6
  # Store HTTP header name-value pairs direcly to a string
3
7
  # and allow duplicated entries on some names.
4
8
  class Headers
5
9
  HEADER_FORMAT = "%s: %s\r\n".freeze
6
10
  ALLOWED_DUPLICATES = %w(set-cookie set-cookie2 warning www-authenticate).freeze
11
+ CR_OR_LF = /[\r\n]/.freeze
7
12
 
8
13
  def initialize
9
14
  @sent = {}
@@ -22,6 +27,8 @@ module Thin
22
27
  value.httpdate
23
28
  when NilClass
24
29
  return
30
+ when CR_OR_LF
31
+ raise InvalidHeader, "Header contains CR or LF"
25
32
  else
26
33
  value.to_s
27
34
  end
data/lib/thin/version.rb CHANGED
@@ -6,11 +6,11 @@ module Thin
6
6
  module VERSION #:nodoc:
7
7
  MAJOR = 1
8
8
  MINOR = 8
9
- TINY = 0
9
+ TINY = 1
10
10
 
11
11
  STRING = [MAJOR, MINOR, TINY].join('.')
12
12
 
13
- CODENAME = "Possessed Pickle".freeze
13
+ CODENAME = "Infinite Smoothie".freeze
14
14
 
15
15
  RACK = [1, 0].freeze # Rack protocol version
16
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc-Andre Cournoyer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-13 00:00:00.000000000 Z
11
+ date: 2021-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -70,7 +70,7 @@ dependencies:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: 1.0.9
73
- description:
73
+ description:
74
74
  email: macournoyer@gmail.com
75
75
  executables:
76
76
  - thin
@@ -134,7 +134,7 @@ licenses:
134
134
  metadata:
135
135
  source_code_uri: https://github.com/macournoyer/thin
136
136
  changelog_uri: https://github.com/macournoyer/thin/blob/master/CHANGELOG
137
- post_install_message:
137
+ post_install_message:
138
138
  rdoc_options: []
139
139
  require_paths:
140
140
  - lib
@@ -149,8 +149,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  - !ruby/object:Gem::Version
150
150
  version: '0'
151
151
  requirements: []
152
- rubygems_version: 3.1.2
153
- signing_key:
152
+ rubygems_version: 3.0.3
153
+ signing_key:
154
154
  specification_version: 4
155
155
  summary: A thin and fast web server
156
156
  test_files: []