safe_regexp 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/safe_regexp.rb +4 -4
- data/lib/safe_regexp/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d41a513f71c9af110f801100927df7c2f99abb869b131bd5ebdd9694eec9f740
|
4
|
+
data.tar.gz: ae1565f7ef31858ecb5c64e0568dd8850f4192f594ce42d54564f616b8810306
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be06fe147c0df803974e4c4bbf23b652aa475d45048e757095ba4dd5b0f25d632f5e2aa71d69627cce6e0b9e48d3ff7e3cc8c9ad7a22b7f1cdcd1e138c57c12b
|
7
|
+
data.tar.gz: 500711ebe4a39248c8f7d8c7b16fea6bf7aaaa71696b5b95e00c58b62a520ce0f116a215bedfabd55278a79fd0ea0afa03b3ce5ed03e11337b5dd4836482b863
|
data/lib/safe_regexp.rb
CHANGED
@@ -8,7 +8,7 @@ module SafeRegexp
|
|
8
8
|
end
|
9
9
|
|
10
10
|
class << self
|
11
|
-
def execute(regex, method,
|
11
|
+
def execute(regex, method, *args, timeout: 1, keepalive: 10)
|
12
12
|
retried = false
|
13
13
|
|
14
14
|
begin
|
@@ -16,7 +16,7 @@ module SafeRegexp
|
|
16
16
|
|
17
17
|
begin
|
18
18
|
read, write, pid = executor
|
19
|
-
Marshal.dump([regex, method,
|
19
|
+
Marshal.dump([regex, method, args, keepalive], write)
|
20
20
|
rescue Errno::EPIPE
|
21
21
|
# keepalive already killed the process, but we don't check before sending
|
22
22
|
# since that would be a race condition and cause overhead for the 99.9% case
|
@@ -87,12 +87,12 @@ module SafeRegexp
|
|
87
87
|
loop do
|
88
88
|
break unless IO.select([in_read], nil, nil, keepalive)
|
89
89
|
begin
|
90
|
-
regexp, method,
|
90
|
+
regexp, method, args, keepalive = Marshal.load(in_read)
|
91
91
|
rescue EOFError # someone killed this fork
|
92
92
|
break
|
93
93
|
end
|
94
94
|
begin
|
95
|
-
result = regexp.public_send(method,
|
95
|
+
result = regexp.public_send(method, *args)
|
96
96
|
result = result.to_a if result.is_a?(MatchData) # cannot be dumped
|
97
97
|
rescue RESCUED_EXCEPTION
|
98
98
|
result = $!
|
data/lib/safe_regexp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: safe_regexp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: michael@grosser.it
|
@@ -38,8 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
40
|
requirements: []
|
41
|
-
|
42
|
-
rubygems_version: 2.7.6
|
41
|
+
rubygems_version: 3.0.3
|
43
42
|
signing_key:
|
44
43
|
specification_version: 4
|
45
44
|
summary: Backtracking bomb safety / timeouts for regular expressions
|