Hi,

I have done some testing with 3.2 and now 3.4, visual studio2003 and
boundschecker (and XP).  I get a few reported errors when I simply do the
.dump command with no db.  Happens on other times with a db, this is easier.
Line numbers are from the downloaded 3.4.0 source.  I don’t really know how
the vdbe works, so not sure how to start on solving the write overrun one…

 

Thanks,

damian

 

Vdbeaux.c sqlite3VdbeChangeP3 line 534

Memory block at address void* _Src = 0x0012C92C in argument 2 in memcpy is
too small, should be 17, was 16.

if( pKeyInfo ){

      unsigned char *aSortOrder;

      memcpy(pKeyInfo, zP3, nByte);

      aSortOrder = pKeyInfo->aSortOrder;

 

 

Write Overrun: Memory write to 0x010D8A88 (2) overruns destination block
0x010D89F8 (60) allocated by HeapAlloc.

Vdbe.c, sqlite3VdbeExec, Line 701.  This occurs when running sqlite3.exe
with no db, then executing .dump, then second breakpoint on the pTos->flags
line invokes this boundschecker error.  

case OP_Integer: {

  pTos++;

  pTos->flags = MEM_Int;

  pTos->u.i = pOp->p1;

  break;

}

 

Resource Leak Exiting Program: Handle 0x00000014 allocated by TlsAlloc.

Os_win.c line 1730

if( !keyInit ){

    sqlite3OsEnterMutex();

    if( !keyInit ){

      key = TlsAlloc();

      if( key==0xffffffff ){

        sqlite3OsLeaveMutex();

        return 0;

      }

 

 

Dangling Pointer: Pointer 0x010D9250, allocated by HeapAlloc, has already
been freed.

Vdbe.c sqlite3VdbeExec Line 469

if( p->magic!=VDBE_MAGIC_RUN ) return SQLITE_MISUSE;

  assert( db->magic==SQLITE_MAGIC_BUSY );

  pTos = p->pTos;

  if( p->rc==SQLITE_NOMEM ){

 

 

 

Pointer Error:  Pointer 0x010DA9F0, used as an argument, is out of range; no
longer within block 0x010DAA30 (204), allocated by malloc.

Vdbeaux.c, sqlite3VdbeMakeReady line 889 <red>

for(n=0; n<p->nMem; n++){

    p->aMem[n].flags = MEM_Null;

  }

 

  p->pTos = &p->aStack[-1];

  p->pc = -1;

  p->rc = SQLITE_OK;

 

similar error Cleanup, line 967

static void Cleanup(Vdbe *p){

  int i;

  if( p->aStack ){

    releaseMemArray(p->aStack, 1 + (p->pTos - p->aStack));

    p->pTos = &p->aStack[-1];

  }

  closeAllCursors(p);

 

 

Similar error  vdbe.c sqlite3VdbeExec, line2681

sqlite3VdbeMemIntegerify(pTos);

  iDb = pTos->u.i;

  assert( (pTos->flags & MEM_Dyn)==0 );

  pTos--;

  assert( iDb>=0 && iDb<db->nDb );

 

 

Unrelated Pointer: Comparing two unrelated pointers 0x010D8A30 and
0x010D8A70.  Pointers are not within the same buffer.

Vdbe.c sqlite3VdbeExec line 983

static void Cleanup(Vdbe *p){

  int i;

  if( p->aStack ){

    releaseMemArray(p->aStack, 1 + (p->pTos - p->aStack));

    p->pTos = &p->aStack[-1];

  }

 

 

Unrelated Pointer: Comparing two unrelated pointers 0x010DAD10 and
0x010DACD0.  Pointers are not within the same buffer.

Vdbe.c sqlite3VdbeExec – line 983

  pFirstColumn = &pTos[0-pOp->p1];

  for(pMem = p->aStack; pMem<pFirstColumn; pMem++){

    Deephemeralize(pMem);

  }

 

Unrelated Pointer: Comparing two unrelated pointers 0x010D8A30 and
0x010D8A70.  Pointers are not within the same buffer.

Vdbeaux.c Cleanup, line 966

static void Cleanup(Vdbe *p){

  int i;

  if( p->aStack ){

    releaseMemArray(p->aStack, 1 + (p->pTos - p->aStack));

    p->pTos = &p->aStack[-1];

  }

 

 

Unrelated Pointer: Comparing two unrelated pointers 0x010DAD10 and
0x010DACD0.  Pointers are not within the same buffer.

Vdbe.c sqlite3VdbeExec line 983

pFirstColumn = &pTos[0-pOp->p1];

  for(pMem = p->aStack; pMem<pFirstColumn; pMem++){

    Deephemeralize(pMem);

  }

 

 

 

 

 

 

 

 

 

 

 


No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.476 / Virus Database: 269.9.14/882 - Release Date: 30/06/2007
3:10 PM
 

Reply via email to