Dixon Hutchinson <[EMAIL PROTECTED]> wrote:
> I am running version 3.3.6 compiled with Visual Studio .net 2003 in a
> single threaded app.
>
> While using sqlite3_exec to execute a "COMMIT;", in run into a null
> pointer problem in sqlite3_step.
>
> I added tests for the null pointer to vdbeapi.c:
>
> if (NULL == p) {
> DebugBreak();
> }
> #ifndef SQLITE_OMIT_EXPLAIN
> if( p->explain ){
> rc = sqlite3VdbeList(p);
> }else
> #endif /* SQLITE_OMIT_EXPLAIN */
> {
> rc = sqlite3VdbeExec(p);
> }
>
> if (NULL == p) {
> DebugBreak(); /* This is the point the failure is detectected */
> }
>
>
> So it seems that sqlite3VdbeExec(p) is somehow clobbering my statement
> pointer.
>
In as much as C is call-by-value, there is nothing that
sqlite3VdbeExec can do to change the value of p. It looks
like your stack is being overwritten somewhere, perhaps due
to a buffer overrun.
--
D. Richard Hipp <[EMAIL PROTECTED]>
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------