On Fri, 31 Oct 2008, Peter Dalgaard wrote:
Corrado wrote:
I apologise .... The dsn is not empty, the database the dsn connects to is
empty!
You get the same error when connecting to a populated database.
Do I? I wouldn't know...
(You are _still_ not providing steps to reproduce the situation!)
The actual maintainer might know, though, so wait for him to chime in.
He cannot reproduce this, on a Fedora 8 system with buffer overflow
detection enabled and PostgreSQL 8.2.10 (the one that Fedora supplies).
As the error is from the PostgreSQL ODBC driver, it is most likely a bug
in that driver (and there is a long history of problems with PostgreSQL
ODBC drivers, especially on 64-bit systems).
Note that the error is pretty clearly in /usr/lib64/libodbcpsql.so.2
calling sprintf, and the buffer passed from RODBC has a length specified
(correctly) in the SQLGetInfo call. Thus using sprintf on _that_ buffer
would of itself be an error. So there is no evidence here of a 'serious
problem with RODBC' (and many other people are using it on Linux systems
with PostgreSQL, and no one else has reported any such issue).
-p
Regards
On Friday 31 October 2008 12:26:39 Peter Dalgaard wrote:
Corrado wrote:
Dear friends,
there is a serious problem with RODBC on R from 2.6.2 to 2.8.0 on a
postgresql 8.3 database.
Let's say we define an empty dsn called "test", with user "postgres" and
password "none". We test the connection with another application, and it
works properly.
When you call the database using RODBC, you get the following:
odbcConnect("test","postgres","none")
*** buffer overflow detected ***: /usr/lib64/R/bin/exec/R terminated
======= Backtrace: =========
/lib64/libc.so.6(__fortify_fail+0x37)[0x2ad38a3f4157]
/lib64/libc.so.6[0x2ad38a3f27e0]
/lib64/libc.so.6[0x2ad38a3f1db9]
/lib64/libc.so.6(_IO_default_xsputn+0x8e)[0x2ad38a379b5e]
/lib64/libc.so.6(_IO_vfprintf+0x3c22)[0x2ad38a351fa2]
/lib64/libc.so.6(__vsprintf_chk+0x9d)[0x2ad38a3f1e5d]
/lib64/libc.so.6(__sprintf_chk+0x80)[0x2ad38a3f1da0]
/usr/lib64/libodbcpsql.so.2(SQLGetInfo+0x973)[0x2ad38de11013]
/usr/lib64/libodbc.so.1(SQLGetInfo+0x624)[0x2ad38c5e91a4]
/usr/lib64/R/library/RODBC/libs/RODBC.so(RODBCGetInfo+0xbb)[0x2ad38c393a9
b]
-....-
OS: Mandriva 2008.1 x86_64
Postgresql: 8.3.1 (PostGIS enabled)
R: from 2.6.2 from repository to 2.8.0 repackaged
Is it my doing, or R's doing?
(R-help snipped)
It looks like that the problem is in the RODBC package, so the
maintainer of RODBC should be informed. For reproducibility, you might
need to be more explicit about how to create an "empty dsn" with postgres.
--
O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Brian D. Ripley, [EMAIL PROTECTED]
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel