luke@stat.uiowa.edu
2003-Aug-09 19:18 UTC
[Rd] segmentation fault: formula() with long variable names (PR#3704)
On Thu, 7 Aug 2003 jerome@hivnet.ubc.ca wrote:> R version: 1.7.1 > OS: Red Hat Linux 7.2 > > In this example, I would expect an error for the overly long variable > name. This is always reproducable for me. > > > formula(paste("y~",paste(rep("x",50000),collapse=""))) > Segmentation fault > > Sincerely, > Jerome AsselinThe problem seems to be in parse, which formula.default calls:> parse(text=paste(rep("x",50000),collapse=""))Segmentation fault (core dumped) We were filling the yytext buffer in gram.y with no overflow checking. I've added some checking in R-devel, so these now give> parse(text=paste(rep("x",50000),collapse=""))Error in parse(text = paste(rep("x", 50000), collapse = "")) : input buffer overflow> formula(paste("y~",paste(rep("x",50000),collapse="")))Error in parse(text = x) : input buffer overflow luke -- Luke Tierney University of Iowa Phone: 319-335-3386 Department of Statistics and Fax: 319-335-3017 Actuarial Science 241 Schaeffer Hall email: luke@stat.uiowa.edu Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu