On Mar 19, 2009, at 8:33 PM, Kim, Albert wrote:
>
> /* The maximum page number is 2^31. Return SQLITE_CORRUPT if a page
> ** number greater than this, or zero, is requested.
> */
> if( pgno>PAGER_MAX_PGNO || pgno==0 || pgno==PAGER_MJ_PGNO(pPager) ){
>   return SQLITE_CORRUPT_BKPT;                      <<<<<<<<<<<<<HERE
> }
>
>
> With some debug printfs I was able to see that pgno is -1 at this  
> point!


pgno is an unsigned integer, so the value is really 4294967295.  That  
number is greater than PAGER_MAX_PGNO, which is what is causing the  
SQLITE_CORRUPT to be returned.

If you can figure out who is calling pagerAcquire() with the faulty  
page number, that would be helpful.

D. Richard Hipp
d...@hwaci.com



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to