From a19b0d0fa9b77184c5e3ffdc7b31750575a0f8e1 Mon Sep 17 00:00:00 2001 From: Gomez <2347012+no-itsbackpack@users.noreply.github.com> Date: Mon, 11 May 2020 16:47:48 -0500 Subject: [PATCH] fix: Switch to safer Open3 to determine OS_VERSION --- lib/google/apis/version.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/google/apis/version.rb b/lib/google/apis/version.rb index 9bbfdd973..81b5f9369 100644 --- a/lib/google/apis/version.rb +++ b/lib/google/apis/version.rb @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +require 'open3' + module Google module Apis # Client library version @@ -21,16 +23,19 @@ module Google # @private OS_VERSION = begin if RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/ - `ver`.sub(/\s*\[Version\s*/, '/').sub(']', '') + output, _ = Open3.capture2('ver') + output.sub(/\s*\[Version\s*/, '/').sub(']', '') elsif RUBY_PLATFORM =~ /darwin/i - "Mac OS X/#{`sw_vers -productVersion`}" + output, _ = Open3.capture2('sw_vers', '-productVersion') + "Mac OS X/#{output}" elsif RUBY_PLATFORM == 'java' require 'java' name = java.lang.System.getProperty('os.name') version = java.lang.System.getProperty('os.version') "#{name}/#{version}" else - `uname -sr`.sub(' ', '/') + output, _ = Open3.capture2('uname', '-sr') + output.sub(' ', '/') end.strip rescue RUBY_PLATFORM