From 88c1aa2570167bdcfd20df6db494d9f2378c4edc Mon Sep 17 00:00:00 2001 From: drew-wells <58978640+drew-wells@users.noreply.github.com> Date: Thu, 16 Mar 2023 12:33:38 +0000 Subject: [PATCH] Update native_support.rb Allow load_native_extension to handle invalid byte sequences in the LoadError exception --- src/ruby_supportlib/phusion_passenger/native_support.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ruby_supportlib/phusion_passenger/native_support.rb b/src/ruby_supportlib/phusion_passenger/native_support.rb index 8c18b46dee..625afc3913 100644 --- a/src/ruby_supportlib/phusion_passenger/native_support.rb +++ b/src/ruby_supportlib/phusion_passenger/native_support.rb @@ -427,10 +427,12 @@ def load_native_extension(name_or_filename) require(name_or_filename) return defined?(PhusionPassenger::NativeSupport) rescue LoadError => e - if e.to_s =~ /dlopen/ + s = e.to_s + s = s.encode("US-ASCII", :invalid => :replace) if s.respond_to?(:encode) + if s =~ /dlopen/ # Print dlopen failures. We're not interested in any other # kinds of failures, such as file-not-found. - puts e.to_s.gsub(/^/, " ") + puts s.gsub(/^/, " ") end return false end