SQLite

Check-in [fdb667335c]
Login

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

Overview
Comment:Make sure the WhereTerm objects are fully zeroed when they are allocated.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: fdb667335c2250239a66143aec4235325dec8274
User & Date: drh 2014-12-05 19:50:58.294
Context
2014-12-05
20:46
Add new test file e_walckpt.test. Still some tests to come. (check-in: e4db3db3a6 user: dan tags: trunk)
20:16
Merge the shared-cache KeyInfo fix from trunk. (check-in: 8a9b43f930 user: drh tags: apple-osx)
20:05
Merge the fix for the shared-cache KeyInfo cache bug from trunk. (check-in: 5a73da6a30 user: drh tags: sessions)
19:50
Make sure the WhereTerm objects are fully zeroed when they are allocated. (check-in: fdb667335c user: drh tags: trunk)
15:31
The KeyInfo cache must be cleared before closing the btree, not after. Revised fix for ticket [e4a18565a36884b00edf]. (check-in: 7ed3346e8c user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/where.c.
218
219
220
221
222
223
224

225
226
227
228
229
230
231
      return 0;
    }
    memcpy(pWC->a, pOld, sizeof(pWC->a[0])*pWC->nTerm);
    if( pOld!=pWC->aStatic ){
      sqlite3DbFree(db, pOld);
    }
    pWC->nSlot = sqlite3DbMallocSize(db, pWC->a)/sizeof(pWC->a[0]);

  }
  pTerm = &pWC->a[idx = pWC->nTerm++];
  if( p && ExprHasProperty(p, EP_Unlikely) ){
    pTerm->truthProb = sqlite3LogEst(p->iTable) - 270;
  }else{
    pTerm->truthProb = 1;
  }







>







218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
      return 0;
    }
    memcpy(pWC->a, pOld, sizeof(pWC->a[0])*pWC->nTerm);
    if( pOld!=pWC->aStatic ){
      sqlite3DbFree(db, pOld);
    }
    pWC->nSlot = sqlite3DbMallocSize(db, pWC->a)/sizeof(pWC->a[0]);
    memset(&pWC->a[pWC->nTerm], 0, sizeof(pWC->a[0])*(pWC->nSlot-pWC->nTerm));
  }
  pTerm = &pWC->a[idx = pWC->nTerm++];
  if( p && ExprHasProperty(p, EP_Unlikely) ){
    pTerm->truthProb = sqlite3LogEst(p->iTable) - 270;
  }else{
    pTerm->truthProb = 1;
  }