bugsnag 2.8.4 → 2.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/VERSION +1 -1
- data/lib/bugsnag/helpers.rb +13 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c82e8e7e46403a193b059ff577ea4b7808ab2f82
|
4
|
+
data.tar.gz: 12c42851511672d1a2209fc6c46effbef3447e6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ee30f99540b90d2d898bc8037e2ce2f534a52ca30c8d57ecff9313557c6af717a90c691ac781cfad56af133b6ad0ae7a5a4eff46b4579ebba7881c52333a14f
|
7
|
+
data.tar.gz: 227828a21ae4cf499392bc41c44639db5f6decf7d9515c46a4363d809b4b5e9256af4d3f3f66a5628d16ab9b2aa3ffc516b8f7afe6807d84a32ab165ba67e4de
|
data/CHANGELOG.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.8.
|
1
|
+
2.8.5
|
data/lib/bugsnag/helpers.rb
CHANGED
@@ -3,26 +3,23 @@ require 'uri'
|
|
3
3
|
module Bugsnag
|
4
4
|
module Helpers
|
5
5
|
MAX_STRING_LENGTH = 4096
|
6
|
+
ENCODING_OPTIONS = {:invalid => :replace, :undef => :replace}.freeze
|
6
7
|
|
7
|
-
def self.cleanup_obj(obj, filters = nil, seen=
|
8
|
+
def self.cleanup_obj(obj, filters = nil, seen = {})
|
8
9
|
return nil unless obj
|
9
10
|
|
10
11
|
# Protect against recursion of recursable items
|
11
|
-
if obj.is_a?(Hash) || obj.is_a?(Array) || obj.is_a?(Set)
|
12
|
-
return
|
13
|
-
|
14
|
-
# We duplicate the seen set here so that no updates by further cleanup_obj calls
|
15
|
-
# are persisted beyond that call.
|
16
|
-
seen = seen.dup
|
17
|
-
seen << obj
|
12
|
+
protection = if obj.is_a?(Hash) || obj.is_a?(Array) || obj.is_a?(Set)
|
13
|
+
return seen[obj] if seen[obj]
|
14
|
+
seen[obj] = '[RECURSION]'.freeze
|
18
15
|
end
|
19
16
|
|
20
|
-
case obj
|
17
|
+
value = case obj
|
21
18
|
when Hash
|
22
19
|
clean_hash = {}
|
23
20
|
obj.each do |k,v|
|
24
21
|
if filters_match?(k, filters)
|
25
|
-
clean_hash[k] =
|
22
|
+
clean_hash[k] = '[FILTERED]'.freeze
|
26
23
|
else
|
27
24
|
clean_obj = cleanup_obj(v, filters, seen)
|
28
25
|
clean_hash[k] = clean_obj
|
@@ -39,19 +36,22 @@ module Bugsnag
|
|
39
36
|
str = obj.to_s
|
40
37
|
# avoid leaking potentially sensitive data from objects' #inspect output
|
41
38
|
if str =~ /#<.*>/
|
42
|
-
'[OBJECT]'
|
39
|
+
'[OBJECT]'.freeze
|
43
40
|
else
|
44
41
|
cleanup_string(str)
|
45
42
|
end
|
46
43
|
end
|
44
|
+
|
45
|
+
seen[obj] = value if protection
|
46
|
+
value
|
47
47
|
end
|
48
48
|
|
49
49
|
def self.cleanup_string(str)
|
50
50
|
if defined?(str.encoding) && defined?(Encoding::UTF_8)
|
51
51
|
if str.encoding == Encoding::UTF_8
|
52
|
-
str.valid_encoding? ? str : str.encode('utf-16',
|
52
|
+
str.valid_encoding? ? str : str.encode('utf-16', ENCODING_OPTIONS).encode('utf-8')
|
53
53
|
else
|
54
|
-
str.encode('utf-8',
|
54
|
+
str.encode('utf-8', ENCODING_OPTIONS)
|
55
55
|
end
|
56
56
|
elsif defined?(Iconv)
|
57
57
|
Iconv.conv('UTF-8//IGNORE', 'UTF-8', str) || str
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bugsnag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|