vmware_web_service 0.1.2 → 0.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 006b481c986e6cad728640d1394bfbb13bd7a6ab
4
- data.tar.gz: 4c33d39aefbedeec84d41631f49083153af2940b
3
+ metadata.gz: a59adcda017843f528b047f04b2b5516e4595d1f
4
+ data.tar.gz: c0e782973a2062df25ce5c126c43534bdb0bfd6b
5
5
  SHA512:
6
- metadata.gz: 90f4d0600f05f832bf7269f03a06d445a5791a7307f6189be587d56234b8b939b30e58469a4bc20f9ff415794cdd637e8f9de83a39a6831478f70f94da236ab1
7
- data.tar.gz: eb246f1531c6fc7dfd6dfaec639dfd4dc2d21c02b615de061de7b481d382862d0f1e8c3f17d63f19c5ccf735fac751aeb7ab35822a0a45577b748b8582c8a323
6
+ metadata.gz: 9a937b71aa93ea6dcf1f5acf154f5a777c4b1cdc4a824f1b6f4e709e291bf6f442e7779323072e0792570dde49b3d8beb2346a3ae171e865cd40729b3794a135
7
+ data.tar.gz: db7a5f239a77935e0ff1578113d4e125823a0ccda927d8a3f7086555ea1621e48870dda3bf4827a2e09b99ec73f5860531bac585a47aec974800f88e70037f07
@@ -20,6 +20,7 @@ module DMiqVimSync
20
20
  end # module DMiqVimSync
21
21
 
22
22
  class DRb::DRbMessage
23
+ EXPECTED_MARSHAL_VERSION = [Marshal::MAJOR_VERSION, Marshal::MINOR_VERSION].freeze
23
24
  alias_method :dump_original, :dump
24
25
 
25
26
  #
@@ -32,9 +33,33 @@ class DRb::DRbMessage
32
33
  #
33
34
  obj.holdBrokerObj if obj.respond_to?(:holdBrokerObj)
34
35
 
35
- return(dump_original(obj, error)) unless obj.kind_of?(MiqDrbReturn)
36
+ obj_to_dump = obj.kind_of?(MiqDrbReturn) ? obj.obj : obj
37
+
38
+ result = dump_original(obj_to_dump, error)
39
+
40
+ valid = true
41
+ size = result[0..3].unpack("N")[0]
42
+ if @load_limit < size
43
+ $vim_log.error("DRb packet size too large: #{size}")
44
+ valid = false
45
+ end
46
+
47
+ marshal_version = result[4, 2].unpack("C2")
48
+ if marshal_version != EXPECTED_MARSHAL_VERSION
49
+ $vim_log.error("Marshal version mismatch: expected: #{EXPECTED_MARSHAL_VERSION} got: #{marshal_version}")
50
+ valid = false
51
+ end
52
+
53
+ unless valid
54
+ $vim_log.error("object: #{obj.inspect}")
55
+ $vim_log.error("buffer:\n#{result[0, 1024].hex_dump}")
56
+ $vim_log.error("caller:\n#{caller.join("\n")}")
57
+ end
58
+
59
+ return result unless obj.kind_of?(MiqDrbReturn)
60
+
36
61
  begin
37
- return(dump_original(obj.obj, error))
62
+ return result
38
63
  ensure
39
64
  if obj.lock && obj.lock.sync_locked?
40
65
  $vim_log.debug "DRb::DRbMessage.dump: UNLOCKING [#{Thread.current.object_id}] <#{obj.obj.object_id}>" if $vim_log.debug?
@@ -1,3 +1,3 @@
1
1
  module VMwareWebService
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.1.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmware_web_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-06 00:00:00.000000000 Z
11
+ date: 2017-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport