[Rd] eval(match.call()) (PR#9339)
marc_schwartz at comcast.net
marc_schwartz at comcast.net
Fri Nov 3 21:27:30 CET 2006
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
More information about the R-devel
mailing list