Skip to content

segfault in drvgettable() #10

@kcgthb

Description

@kcgthb

Hi,

I'm getting a segmentation fault in drvgettable() at sqlite3odbc.c:1642 when running large SQL queries:

tres.resarr[0] = (char *) (tres.ndata - 1);

The setup is Stata 17 -> unixODBC 2.3.9 -> sqliteodbc 0.9998 -> SQLite 3.18.0
and the relevant part of the backtrace is as follows:

(gdb) bt
#0  0x00007f9fecb3f6bf in drvgettable (p=0x0, nparam=0, errp=<synthetic pointer>, ncolp=<synthetic pointer>, nrowp=0x62856f0, resp=0x6285700, sql=<optimized out>, s=0x6285638) at sqlite3odbc.c:1642
#1  drvexecute (stmt=0x6285638, initial=1) at sqlite3odbc.c:18739
#2  0x00007f9fecf8cbf5 in SQLExecDirectW (statement_handle=0x6284fa0, statement_text=<optimized out>, text_length=<optimized out>) at SQLExecDirectW.c:359
[...]

The particular SQL query that generates this is a SELECT that returns about 8GB of data. The same query works fine when executed in the sqlite3 shell directly. And limiting the number of records returned with LIMIT seems to be working too.

Any idea what may be the reason for that segfault?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions