From harringt at stat.ubc.ca  Fri Nov  3 23:31:11 2006
From: harringt at stat.ubc.ca (harringt at stat.ubc.ca)
Date: Fri,  3 Nov 2006 23:31:11 +0100 (CET)
Subject: [Rd] eval(match.call()) (PR#9339)
Message-ID: <20061103223111.AED4E44228@slim.kubism.ku.dk>

Peter Dalgaard wrote:
> Marc Schwartz <marc_schwartz at comcast.net> writes:
>
>   
>> On Fri, 2006-11-03 at 21:15 +0100, Peter Dalgaard wrote:
>>     
>>> harringt at stat.ubc.ca writes:
>>>
>>>       
>>>> Full_Name: Justin Harrington
>>>> Version: 2.4.0
>>>> OS: Fedora Core 6
>>>> Submission from: (NULL) (142.103.121.203)
>>>>
>>>>
>>>> When I type the (albeit stupid) command
>>>>
>>>> eval(match.call())
>>>>
>>>> R crashes with the following messages (truncated):
>>>>
>>>> *** buffer overflow detected ***: /usr/lib/R/bin/exec/R terminated
>>>>         
>>> Yes, don't do that then ;-)
>>>       
>> Indeed...  ;-)
>>
>>     
>>> Part of the puzzle is that
>>>
>>>       
>>>> match.call()
>>>>         
>>> match.call()
>>>
>>> which looks like something with potential for infinite recursion, but
>>> that doesn't seem to be issue since
>>>
>>>       
>>>> f <- function(call = sys.call(sys.parent()))call
>>>> f()
>>>>         
>>> f()
>>>       
>>>> eval(f())
>>>>         
>>> f()
>>>
>>> does not exhibit the same crash. And indeed
>>>
>>>       
>>>> x <- quote(match.call())
>>>> eval(x)
>>>>         
>>> *** buffer overflow detected ***: /usr/lib/R/bin/exec/R terminated
>>> ======= Backtrace: =========
>>> /lib/libc.so.6(__chk_fail+0x41)[0x1f1161]
>>> /lib/libc.so.6[0x1f0617]
>>>
>>> does look like something that just Should Not Happen...
>>>       
>> Peter, are you on FC6?
>>
>> On FC5, I cannot replicate your crash:
>>
>>     
>>> x <- quote(match.call())
>>> eval(x)
>>>       
>> Error in match.call(definition, call, expand.dots) :
>>         '.Primitive...' is not a function
>>
>> ?
>>     
>
> Yes, I'm on FC6 since yum had updated the 1229 packages this morning.
>
> I see the crash with the FC6 RPM but not with a self-compiled R-patched.
>
>   
For what it's worth, I also get the same error when trying it on my 
(freshly updated) FC4 machine (Linux md.stat.ubc.ca 2.6.17-1.2142_FC4 #1 
Tue Jul 11 22:41:14 EDT 2006 i686 i686 i386 GNU/Linux) with R version 
2.4.0 (2006-10-03)


Justin



[Rd] eval(match.call()) (PR#9339)
harringt at stat.ubc.ca