From marc_schwartz at comcast.net  Fri Nov  3 21:27:30 2006
From: marc_schwartz at comcast.net (marc_schwartz at comcast.net)
Date: Fri,  3 Nov 2006 21:27:30 +0100 (CET)
Subject: [Rd] eval(match.call()) (PR#9339)
Message-ID: <20061103202730.30A4C3F043@slim.kubism.ku.dk>

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

?

Regards,

Marc



[Rd] eval(match.call()) (PR#9339)
marc_schwartz at comcast.net