/ Check-in [fa47f4c6]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Improved detection of cell corruption in sqlite3VdbeRecordCompareWithSkip().
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: fa47f4c6589c431cf678560ac33dea6b695052012bea2096b2c92869ed51c688
User & Date: drh 2019-01-11 16:44:16
Context
2019-01-11
17:19
Omit errors about missing SAVEPOINTs when aborting the .archive command in the CLI. check-in: 2a47387b user: drh tags: trunk
16:44
Improved detection of cell corruption in sqlite3VdbeRecordCompareWithSkip(). check-in: fa47f4c6 user: drh tags: trunk
14:46
Fix PRAGMA integrity_check so that it does not cancel the PRAGMA vdbe_debug setting. check-in: aaa3a19f user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/vdbeaux.c.

  4247   4247       szHdr1 = aKey1[0];
  4248   4248       d1 = szHdr1 + sqlite3VdbeSerialTypeLen(s1);
  4249   4249       i = 1;
  4250   4250       pRhs++;
  4251   4251     }else{
  4252   4252       idx1 = getVarint32(aKey1, szHdr1);
  4253   4253       d1 = szHdr1;
  4254         -    if( d1>(unsigned)nKey1 ){ 
  4255         -      pPKey2->errCode = (u8)SQLITE_CORRUPT_BKPT;
  4256         -      return 0;  /* Corruption */
  4257         -    }
  4258   4254       i = 0;
  4259   4255     }
         4256  +  if( d1>(unsigned)nKey1 ){ 
         4257  +    pPKey2->errCode = (u8)SQLITE_CORRUPT_BKPT;
         4258  +    return 0;  /* Corruption */
         4259  +  }
  4260   4260   
  4261   4261     VVA_ONLY( mem1.szMalloc = 0; ) /* Only needed by assert() statements */
  4262   4262     assert( pPKey2->pKeyInfo->nAllField>=pPKey2->nField 
  4263   4263          || CORRUPT_DB );
  4264   4264     assert( pPKey2->pKeyInfo->aSortOrder!=0 );
  4265   4265     assert( pPKey2->pKeyInfo->nKeyField>0 );
  4266   4266     assert( idx1<=szHdr1 || CORRUPT_DB );

Changes to test/fuzzdata7.db.

cannot compute difference between binary files