diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2016-03-18 12:03:16 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2016-03-18 12:03:16 -0700 |
commit | 79cdc153784d9560bbfefe5c6f79cfa200a5fda5 (patch) | |
tree | c12f29f363cfaba42964e381a86809cbac352705 | |
parent | bc43fc2e2f50afcd961542e6503a9e71cee7e66f (diff) | |
download | chef-79cdc153784d9560bbfefe5c6f79cfa200a5fda5.tar.gz |
coerce to strings.lcg/remove-readline-libedit
ffi now calls #encode on these and does not internally coerce to string
correctly
-rw-r--r-- | lib/chef/win32/registry.rb | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/chef/win32/registry.rb b/lib/chef/win32/registry.rb index bccd2e3c72..e10a9027b9 100644 --- a/lib/chef/win32/registry.rb +++ b/lib/chef/win32/registry.rb @@ -61,7 +61,8 @@ class Chef end def set_value(key_path, value) - Chef::Log.debug("Updating value #{value[:name]} in registry key #{key_path} with type #{value[:type]} and data #{value[:data]}") + data = value[:data].to_s if value[:data] + Chef::Log.debug("Updating value #{value[:name]} in registry key #{key_path} with type #{value[:type]} and data #{data}") key_exists!(key_path) hive, key = get_hive_and_key(key_path) if value_exists?(key_path, value) @@ -70,13 +71,13 @@ class Chef return false else hive.open(key, ::Win32::Registry::KEY_SET_VALUE | ::Win32::Registry::KEY_QUERY_VALUE | registry_system_architecture) do |reg| - reg.write(value[:name], get_type_from_name(value[:type]), value[:data]) + reg.write(value[:name], get_type_from_name(value[:type]), data) end Chef::Log.debug("Value #{value[:name]} in registry key #{key_path} updated") end else hive.open(key, ::Win32::Registry::KEY_SET_VALUE | ::Win32::Registry::KEY_QUERY_VALUE | registry_system_architecture) do |reg| - reg.write(value[:name], get_type_from_name(value[:type]), value[:data]) + reg.write(value[:name], get_type_from_name(value[:type]), data) end Chef::Log.debug("Value #{value[:name]} in registry key #{key_path} created") end @@ -206,13 +207,14 @@ class Chef end def data_exists?(key_path, value) + data = value[:data].to_s if value[:data] key_exists!(key_path) hive, key = get_hive_and_key(key_path) hive.open(key, ::Win32::Registry::KEY_READ | registry_system_architecture) do |reg| reg.each do |val_name, val_type, val_data| if safely_downcase(val_name) == safely_downcase(value[:name]) && val_type == get_type_from_name(value[:type]) && - val_data == value[:data] + val_data == data return true end end |