vmware_web_service 0.1.2 → 0.1.3

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
  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