+++ /dev/null
-From d54c86abfba35f48cad78bb99b1d199afe8c2095 Mon Sep 17 00:00:00 2001
-From: Jeff McCune <jeff@puppetlabs.com>
-Date: Tue, 16 Apr 2013 11:27:30 -0400
-Subject: [PATCH] (#14522) Force /proc/self/status encoding to valid UTF-8 (try
- 2)
-
-Without this patch the previous attempt to fix issue 14522 is
-insufficient because the String#encode method is a no-op when the source
-and destination encodings are the same encoding, even if there are
-invalid byte sequences.
-
-This is a problem because we're still getting unhandled `invalid byte
-sequence in UTF-8` errors running the specs.
-
-This patch addresses the problem by changing encoding from UTF-8 to
-UTF-16, replacing all invalid byte sequences with the default unicode
-string of "uFFFD" We then convert back to UTF-8 to guarantee only valid
-byte sequences remain.
----
- lib/facter/util/virtual.rb | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/lib/facter/util/virtual.rb b/lib/facter/util/virtual.rb
-index 8223b41..65cf58a 100644
---- a/lib/facter/util/virtual.rb
-+++ b/lib/facter/util/virtual.rb
-@@ -63,7 +63,8 @@ def self.vserver?
- return false unless FileTest.exists?("/proc/self/status")
- txt = File.open("/proc/self/status", "rb").read
- if txt.respond_to?(:encode!)
-- txt.encode!('UTF-8', 'UTF-8', :invalid => :replace)
-+ txt.encode!('UTF-16', 'UTF-8', :invalid => :replace)
-+ txt.encode!('UTF-8', 'UTF-16')
- end
- return true if txt =~ /^(s_context|VxID):[[:blank:]]*[0-9]/
- return false
---
-1.8.1.6
-