unicorn 0.97.0 → 0.97.1
Sign up to get free protection for your applications and to get access to all the features.
- data/GIT-VERSION-GEN +1 -1
- data/ext/unicorn_http/c_util.h +6 -2
- data/lib/unicorn/const.rb +1 -1
- data/test/unit/test_http_parser_ng.rb +20 -0
- metadata +2 -2
data/GIT-VERSION-GEN
CHANGED
data/ext/unicorn_http/c_util.h
CHANGED
@@ -108,8 +108,12 @@ static off_t parse_length(const char *value, size_t length)
|
|
108
108
|
{
|
109
109
|
off_t rv;
|
110
110
|
|
111
|
-
for (rv = 0; length-- && rv >= 0; ++value)
|
112
|
-
|
111
|
+
for (rv = 0; length-- && rv >= 0; ++value) {
|
112
|
+
if (*value >= '0' && *value <= '9')
|
113
|
+
rv = step_incr(rv, *value, 10);
|
114
|
+
else
|
115
|
+
return -1;
|
116
|
+
}
|
113
117
|
|
114
118
|
return rv;
|
115
119
|
}
|
data/lib/unicorn/const.rb
CHANGED
@@ -7,7 +7,7 @@ module Unicorn
|
|
7
7
|
# gave about a 3% to 10% performance improvement over using the strings directly.
|
8
8
|
# Symbols did not really improve things much compared to constants.
|
9
9
|
module Const
|
10
|
-
UNICORN_VERSION="0.97.
|
10
|
+
UNICORN_VERSION="0.97.1"
|
11
11
|
|
12
12
|
DEFAULT_HOST = "0.0.0.0" # default TCP listen host address
|
13
13
|
DEFAULT_PORT = 8080 # default TCP listen port
|
@@ -416,4 +416,24 @@ class HttpParserNgTest < Test::Unit::TestCase
|
|
416
416
|
end
|
417
417
|
end
|
418
418
|
|
419
|
+
def test_negative_content_length
|
420
|
+
req = {}
|
421
|
+
str = "PUT / HTTP/1.1\r\n" \
|
422
|
+
"Content-Length: -1\r\n" \
|
423
|
+
"\r\n"
|
424
|
+
assert_raises(HttpParserError) do
|
425
|
+
@parser.headers(req, str)
|
426
|
+
end
|
427
|
+
end
|
428
|
+
|
429
|
+
def test_invalid_content_length
|
430
|
+
req = {}
|
431
|
+
str = "PUT / HTTP/1.1\r\n" \
|
432
|
+
"Content-Length: zzzzz\r\n" \
|
433
|
+
"\r\n"
|
434
|
+
assert_raises(HttpParserError) do
|
435
|
+
@parser.headers(req, str)
|
436
|
+
end
|
437
|
+
end
|
438
|
+
|
419
439
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unicorn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.97.
|
4
|
+
version: 0.97.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Unicorn hackers
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-04-19 00:00:00 +00:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|