Core dump in sqlite 3.23 through 3.24 (at least)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Core dump in sqlite 3.23 through 3.24 (at least)

Peter da Silva
In tclsqlite.c, function DbMain()... somewhere between 3.19 and 3.23 there was a re-write of the argument parsing code for the sqlite command, and following code was removed and not completely replaced with a new equivalent:

  if( objc<3 || (objc&1)!=1 ){

    Tcl_WrongNumArgs(interp, 1, objv,

      "HANDLE FILENAME ?-vfs VFSNAME? ?-readonly BOOLEAN? ?-create BOOLEAN?"

      " ?-nomutex BOOLEAN? ?-fullmutex BOOLEAN? ?-uri BOOLEAN?"


      " ?-key CODECKEY?"



    return TCL_ERROR;


The result is that if you use the sqlite command with no arguments it core dumps on the code following, where it tries to use objv[1], instead of returning an error.

$ tclsh

% package require sqlite3


% sqlite3

Segmentation fault (core dumped)

It looks like there is an attempt to handle missing arguments at the top of the “for(i=2; i<objc; i++)” loop but if there are no arguments that code is bypassed.

sqlite-users mailing list
[hidden email]