On 11-12-29 4:37 PM, Duncan Murdoch wrote:
On 11-12-29 9:49 AM, Henrik Bengtsson wrote:
I get the following with R v2.14.1 patched on Windows 7:
% Rterm --vanilla --silent
sessionInfo()
R version 2.14.1 Patched (2011-12-26 r58001)
Platform: x86_64-pc-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
readline(sprintf("%-*s:", 180, "A prompt"))
A prompt
:
[1] ""
q("no")
Error: caught access violation - continue with care
It is a consistent behavior.
I can reproduce this, but I can't spot where the problem is. I/O in
Rterm is very complicated, because we use a getline library that
implements line editing, and we run the I/O in a thread so that graphics
windows can be updated while waiting for input.
Presumably the problem is the long prompt causing a buffer overflow
somewhere, and a workaround is to use a more reasonable length of
prompt, but I don't think I'm going to be able to offer a real fix. I'd
guess this bug is local to Rterm in Windows, but we don't really have
good tools there to detect buffer overflows.
Just had another idea, and found the problem - a buffer overflow in
getline. I'll fix it.
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel