From 76181ae940c485d80990941d064f8fdc26b3b4ee Mon Sep 17 00:00:00 2001 From: aycabta Date: Sun, 2 Jan 2022 11:44:45 +0900 Subject: [ruby/reline] Check capname of tigetstr/tigetflag/tigetnum Incorrect arguments can cause SEGV. https://github.com/ruby/reline/commit/a58748bcf9 --- lib/reline/terminfo.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/reline') diff --git a/lib/reline/terminfo.rb b/lib/reline/terminfo.rb index 95ff082172..b053ba82c4 100644 --- a/lib/reline/terminfo.rb +++ b/lib/reline/terminfo.rb @@ -121,6 +121,7 @@ module Reline::Terminfo end def self.tigetstr(capname) + raise TerminfoError, "capname is not String: #{capname.inspect}" unless capname.is_a?(String) capability = @tigetstr.(capname) case capability.to_i when 0, -1 @@ -138,6 +139,7 @@ module Reline::Terminfo end def self.tigetflag(capname) + raise TerminfoError, "capname is not String: #{capname.inspect}" unless capname.is_a?(String) flag = @tigetflag.(capname).to_i case flag when -1 @@ -149,6 +151,7 @@ module Reline::Terminfo end def self.tigetnum(capname) + raise TerminfoError, "capname is not String: #{capname.inspect}" unless capname.is_a?(String) num = @tigetnum.(capname).to_i case num when -2 -- cgit v1.2.3