Re: [sqlite] Bug report: Sqlite seg fault, probably after database gets corrupt

2013-08-01 Thread Richard Hipp
On Thu, Aug 1, 2013 at 3:30 PM, Brian Vincent wrote: > if( d1>=(u32)nKey1 && sqlite3VdbeSerialTypeLen(serial_type1)>0 ) break; > > The next line will likely segfault if d1>=nKey1, right? What if d1>=nKey1, > but it's not true that sqlite3VdbeSerialTypeLen(serial_type1)>0 ?

Re: [sqlite] Bug report: Sqlite seg fault, probably after database gets corrupt

2013-08-01 Thread Brian Vincent
if( d1>=(u32)nKey1 && sqlite3VdbeSerialTypeLen(serial_type1)>0 ) break; The next line will likely segfault if d1>=nKey1, right? What if d1>=nKey1, but it's not true that sqlite3VdbeSerialTypeLen(serial_type1)>0 ? Wouldn't this still cause a segfault? Is that a valid concern? -Brian

Re: [sqlite] Bug report: Sqlite seg fault, probably after database gets corrupt

2013-08-01 Thread Richard Hipp
On Thu, Aug 1, 2013 at 2:20 PM, Brian Vincent wrote: > I think I can describe, is a > possibly way that a corrupt database is causing sqlite to segfault. > Thanks. Fixed in http://www.sqlite.org/src/info/c3baca99f4 including a test case. -- D. Richard Hipp d...@sqlite.org

Re: [sqlite] Bug report: Sqlite seg fault, probably after database gets corrupt

2013-08-01 Thread Stephan Beal
On Thu, Aug 1, 2013 at 8:20 PM, Brian Vincent wrote: > next line assigns it to d1, which is a signed integer, so d1 gets a > negative value. To be strictly pedantic, overflow/underflow are undefined for _signed_ types in C. Here are some details:

Re: [sqlite] Bug report: Sqlite seg fault, probably after database gets corrupt

2013-08-01 Thread Warren Young
On 8/1/2013 12:20, Brian Vincent wrote: Let me first say that we sometimes see databases that go corrupt. I haven't pinpointed the cause yet, This may be enlightening: "How to Corrupt an SQLite Database File" https://www.sqlite.org/howtocorrupt.html

[sqlite] Bug report: Sqlite seg fault, probably after database gets corrupt

2013-08-01 Thread Brian Vincent
Let me first say that we sometimes see databases that go corrupt. I haven't pinpointed the cause yet, but what I think I can describe, is a possibly way that a corrupt database is causing sqlite to segfault. I use a java wrapper for sqlite. I've seen this exact segfault happen on an older