|
From: Markus H. <mar...@mh...> - 2009-05-25 20:53:00
|
Phil Longstaff writes: > Lines 541/542 of dbd_sqlite3 are dangerous. They free the static char* errmsg without resetting the pointer to NULL. This will cause line 624 in dbi_conn_error() to free the pointer again. > I don't know the architecture of libdbi well enough to propose a fix. Perhaps remove line 542 of dbd_sqlite3.c. Perhaps add a dbi_conn_clear_error() which frees the pointer and then clears it. > Hi Phil, thanks for analyzing and reporting this problem. To the best of my knowledge the proper way to handle this is to remove the free() call as libdbi handles the error strings all by itself. I've checked in fixed versions of dbd_sqlite3.c and dbd_sqlite.c which had the same problem. Could you please test the new version and see if it helps? regards, Markus -- Markus Hoenicka mar...@ca... (Spam-protected email: replace the quadrupeds with "mhoenicka") http://www.mhoenicka.de |