[DBD-SQLite] Re: [sqlite] ANN - DBD::SQLite version
Stefan Evert
stefan.evert at uos.de
Tue Mar 31 00:03:13 BST 2009
On 30 Mar 2009, at 01:25, Darren Duncan wrote:
> Stefan, thanks for your report, and Michael for your confirmation.
>
> If you think you might be able to root out the problem and fix it,
> then please do; patches are welcome. You may also want to file an
> RT item on this. Or maybe check and see if any existing RT items
> refer to the same problem and if so then you could annotate the
> problem still exists in 1.19_02.
I'm about to go on a trip and will be away for a next week, so I don't
have time to set up a RT item (I need to get an account there first,
and all that ...).
However, I played around a little with the source code and came a
little closer to tracking down the source of the segfaults. Perhaps
the SQLite gurus can help us out from here?
Apparently, the segfault is triggered when Perl calls
sqlite3_result_error( context, s, len );
to signal an exception in the Perl callback function. As soon as the
string s[] is longer than 22 characters (excluding the NUL
terminator), I get a segfault (in Mac OS X 10.5.6 Intel; can't check
Linux at the moment as our server is down). This doesn't seem to have
anything to do with Perl, because I get exactly the same behaviour
when I change the function call (dbimb.c, line 780) to a constant
string:
sqlite3_result_error( context, "........1.........2....", 23 );
If I change 23 to 22, the program runs through.
Sounds a bit like a buffer overflow in the SQLite code to me, but I
know far too little about SQLite internals to chase this down easily.
Best,
Stefan
More information about the DBD-SQLite
mailing list