From 0aa197c6f2740ba9ed5e543737965164a356781e Mon Sep 17 00:00:00 2001 From: zzak Date: Sun, 25 May 2014 16:41:40 +0000 Subject: [PATCH] * lib/csv.rb: Reject nil as data source for CSV.new, patch by @Peeja. [Fixes GH-580] https://github.com/ruby/ruby/pull/580 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/csv.rb | 4 ++++ test/csv/test_interface.rb | 6 ++++++ 3 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index eb6e7b0a8f..e33c5ddd2d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon May 26 01:39:02 2014 Zachary Scott + + * lib/csv.rb: Reject nil as data source for CSV.new, patch by @Peeja. + [Fixes GH-580] https://github.com/ruby/ruby/pull/580 + Mon May 26 01:07:51 2014 Tanaka Akira * test/lib/minitest/unit.rb: Show leaked threads and tempfiles diff --git a/lib/csv.rb b/lib/csv.rb index cd59d8caeb..595586a541 100644 --- a/lib/csv.rb +++ b/lib/csv.rb @@ -1484,6 +1484,10 @@ class CSV # so be sure to set what you want here. # def initialize(data, options = Hash.new) + if data.nil? + raise ArgumentError.new("Cannot parse nil as CSV") + end + # build the options for this read/write options = DEFAULT_OPTIONS.merge(options) diff --git a/test/csv/test_interface.rb b/test/csv/test_interface.rb index 89b4a462f9..d6bf470f6b 100755 --- a/test/csv/test_interface.rb +++ b/test/csv/test_interface.rb @@ -130,6 +130,12 @@ class TestCSV::Interface < TestCSV end end + def test_nil_is_not_acceptable + assert_raise_with_message ArgumentError, "Cannot parse nil as CSV" do + CSV.new(nil) + end + end + ### Test Write Interface ### def test_generate