From 2575ed9dc25da6008b90dc501ebea48ef34579c1 Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Mon, 26 Jun 2017 20:00:43 -0700 Subject: [PATCH] Explicitly set encodings to prevent incompatible string comparisons --- lib/vagrant/machine.rb | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/vagrant/machine.rb b/lib/vagrant/machine.rb index 7c2310acb..e375d08ce 100644 --- a/lib/vagrant/machine.rb +++ b/lib/vagrant/machine.rb @@ -571,19 +571,24 @@ module Vagrant # from its previous location on disk. If the machine # has moved, it prints a warning to the user. def check_cwd + desired_encoding = @env.root_path.to_s.encoding vagrant_cwd_filepath = @data_dir.join('vagrant_cwd') vagrant_cwd = if File.exist?(vagrant_cwd_filepath) - File.read(vagrant_cwd_filepath).chomp - end + File.read(vagrant_cwd_filepath, + external_encoding: desired_encoding + ).chomp + end - if vagrant_cwd.nil? - File.write(vagrant_cwd_filepath, @env.root_path) - elsif vagrant_cwd != @env.root_path.to_s - ui.warn(I18n.t( - 'vagrant.moved_cwd', - old_wd: vagrant_cwd, - current_wd: @env.root_path.to_s)) - File.write(vagrant_cwd_filepath, @env.root_path) + if vagrant_cwd != @env.root_path.to_s + if vagrant_cwd + ui.warn(I18n.t( + 'vagrant.moved_cwd', + old_wd: "#{vagrant_cwd}", + current_wd: "#{@env.root_path.to_s}")) + end + File.write(vagrant_cwd_filepath, @env.root_path.to_s, + external_encoding: desired_encoding + ) end end end