[#11073] segfault printing instruction sequence for iterator — <noreply@...>

Bugs item #10527, was opened at 2007-05-02 14:42

14 messages 2007/05/02
[#11142] Re: [ ruby-Bugs-10527 ] segfault printing instruction sequence for iterator — Nobuyoshi Nakada <nobu@...> 2007/05/10

Hi,

[#11188] Re: [ ruby-Bugs-10527 ] segfault printing instruction sequence for iterator — Paul Brannan <pbrannan@...> 2007/05/16

On Thu, May 10, 2007 at 04:51:18PM +0900, Nobuyoshi Nakada wrote:

[#11234] Planning to release 1.8.6 errata — Urabe Shyouhei <shyouhei@...>

Hi all.

17 messages 2007/05/25

Re: [ ruby-Bugs-10588 ] parsedate fails

From: Nobuyoshi Nakada <nobu@...>
Date: 2007-05-05 01:45:13 UTC
List: ruby-core #11091
Hi,

At Sat, 5 May 2007 02:51:57 +0900,
Michael Dotterer wrote in [ruby-core:11090]:
> Using String#to_date (which calls parsedate) raises the message "can't modify frozen string"
> 
> Trace:
> 
> c:/ruby/lib/ruby/1.8/date/format.rb:105:in `chomp!'
> c:/ruby/lib/ruby/1.8/date/format.rb:105:in `method_missing'
> c:/ruby/lib/ruby/1.8/date/format.rb:963:in `_parse'
> c:/ruby/lib/ruby/1.8/parsedate.rb:47:in `parsedate'
> #{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/core_ext/string/conversions.rb:14:in `to_date'
> ...
> 
> I was unable to reproduce the error using irb.

Seems activesupport uses #send with a frozen string to invoke
conversion method.

I guess method_missing should not modify its arguments.


Index: lib/date/format.rb
===================================================================
--- lib/date/format.rb	(revision 12239)
+++ lib/date/format.rb	(working copy)
@@ -119,5 +119,5 @@ class Date
 
       def method_missing(t, *args, &block)
-	t = t.to_s
+	t = "#{t}"
 	set = t.chomp!('=')
 	t = t.intern


-- 
Nobu Nakada

In This Thread