diff options
Diffstat (limited to 'spec/ruby/security/cve_2018_8780_spec.rb')
| -rw-r--r-- | spec/ruby/security/cve_2018_8780_spec.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/ruby/security/cve_2018_8780_spec.rb b/spec/ruby/security/cve_2018_8780_spec.rb new file mode 100644 index 0000000000..dc8c6bcc9b --- /dev/null +++ b/spec/ruby/security/cve_2018_8780_spec.rb @@ -0,0 +1,43 @@ +require_relative '../spec_helper' + +describe "CVE-2018-8780 is resisted by" do + before :all do + @root = File.realpath(tmp("")) + end + + it "Dir.glob by raising an exception when there is a NUL byte" do + -> { + Dir.glob([[@root, File.join(@root, "*")].join("\0")]) + }.should.raise(ArgumentError, /(path name|string) contains null byte/) + end + + it "Dir.entries by raising an exception when there is a NUL byte" do + -> { + Dir.entries(@root+"\0") + }.should.raise(ArgumentError, /(path name|string) contains null byte/) + end + + it "Dir.foreach by raising an exception when there is a NUL byte" do + -> { + Dir.foreach(@root+"\0").to_a + }.should.raise(ArgumentError, /(path name|string) contains null byte/) + end + + it "Dir.empty? by raising an exception when there is a NUL byte" do + -> { + Dir.empty?(@root+"\0") + }.should.raise(ArgumentError, /(path name|string) contains null byte/) + end + + it "Dir.children by raising an exception when there is a NUL byte" do + -> { + Dir.children(@root+"\0") + }.should.raise(ArgumentError, /(path name|string) contains null byte/) + end + + it "Dir.each_child by raising an exception when there is a NUL byte" do + -> { + Dir.each_child(@root+"\0").to_a + }.should.raise(ArgumentError, /(path name|string) contains null byte/) + end +end |
