Subject: | Segmentation fault on INSERT |
Hi,
I am forwarding Debian bug report #500788 -
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=500788
I'll copy here the original submitter's report - Thank you for your
attention!
------------------------------------------
I just found out that a certain kind of INSERT statement can cause the
DBD::PG module to produce a segmentation fault - reproduceably.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f09c22e56e0 (LWP 11781)]
0x00007f09c13fb850 in strcat () from /lib/libc.so.6
(gdb) bt
#0 0x00007f09c13fb850 in strcat () from /lib/libc.so.6
#1 0x00007f09c0668ff2 in pg_st_execute () from
/usr/lib/perl5/auto/DBD/Pg/Pg.so
#2 0x00007f09c0655f50 in XS_DBD__Pg__db_do () from
/usr/lib/perl5/auto/DBD/Pg/Pg.so
#3 0x00007f09c0ca8708 in XS_DBI_dispatch () from
/usr/lib/perl5/auto/DBI/DBI.so
#4 0x00007f09c1e23e50 in Perl_pp_entersub () from /usr/lib/libperl.so.5.10
#5 0x00007f09c1e22332 in Perl_runops_standard () from
/usr/lib/libperl.so.5.10
#6 0x00007f09c1e1d57f in perl_run () from /usr/lib/libperl.so.5.10
#7 0x0000000000400d0c in main ()
(gdb) q
To see that yourself:
- A table with (at least) two fields
- A correct INSERT statement works:
$db_session->do("INSERT INTO tbl(a, b) VALUES(?,?)", {}, "x", "y");
- With just a little type you get a segmentation violation:
$db_session->do("INSERT INTO tbl(a, b) VALUES(??)", {}, "x", "y");
The perl part seems to notice that there are two "?", and two bind values,
so everything's ok - but afterwards it crashes
Regards,
Phil