From: drh Date: Mon, 7 May 2018 11:29:59 +0000 (+0000) Subject: Fix harmless compiler warnings in the cell-overwrite logic. X-Git-Tag: version-3.24.0~61^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=30f7a25325ee6d779bd91f66db1dd936f17e7c2b;p=thirdparty%2Fsqlite.git Fix harmless compiler warnings in the cell-overwrite logic. FossilOrigin-Name: 3e11dc3183bc3e8ec49af244a8e8b3e07d12f7a2e59028b2bf64ce0ab589a91f --- diff --git a/manifest b/manifest index a19a336799..363640929f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Merge\senhancements\sfrom\strunk. -D 2018-05-04T19:18:27.186 +C Fix\sharmless\scompiler\swarnings\sin\sthe\scell-overwrite\slogic. +D 2018-05-07T11:29:59.385 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 5ce9343cba9c189046f1afe6d2bcc1f68079439febc05267b98aec6ecc752439 @@ -434,7 +434,7 @@ F src/auth.c 6277d63837357549fe14e723490d6dc1a38768d71c795c5eb5c0f8a99f918f73 F src/backup.c faf17e60b43233c214aae6a8179d24503a61e83b F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c 8faf9ebbecb98f05d75f203fdb2421e47a60f1edef3192af8fc7691cb979895c +F src/btree.c b4ca692c0c557bba653412a0c3347f0e5c140e759f0d8349383b7de7281ad99e F src/btree.h 0866c0a08255142ea0e754aabd211c843cab32045c978a592a43152405ed0c84 F src/btreeInt.h 620ab4c7235f43572cf3ac2ac8723cbdf68073be4d29da24897c7b77dda5fd96 F src/build.c 0c2be5839f22aa2938f217c6c6c2120d9fc96872a546a37541a8271541cb355e @@ -1727,7 +1727,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P f89b54f41405ed7e28132f66b8a0c690a087c2412c8f55790c2beabb0b521645 7fdad122a21e4b01bd678198fd5131dc32febe3af366bd6368505398255f9822 -R df1e682f55c594c022a81ad6cca73208 +P 9650f71b82ca1b3759e776bbd8a2e8ca61c51f80038e37c9c9a675a8c13b0b06 +R 0f12e4904e55641cfcfe9534f6ff08d6 U drh -Z 23057790a24d7f2fdd5e77d4df41fcee +Z eb245c54fb26ccb37327155d2c7d476e diff --git a/manifest.uuid b/manifest.uuid index da787b2962..adb6239ec1 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9650f71b82ca1b3759e776bbd8a2e8ca61c51f80038e37c9c9a675a8c13b0b06 \ No newline at end of file +3e11dc3183bc3e8ec49af244a8e8b3e07d12f7a2e59028b2bf64ce0ab589a91f \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 9dc91fe982..6dcd435325 100644 --- a/src/btree.c +++ b/src/btree.c @@ -8214,6 +8214,8 @@ static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX){ /* Now overwrite the overflow pages */ iOffset = pCur->info.nLocal; + assert( nTotal>=0 ); + assert( iOffset>=0 ); ovflPgno = get4byte(pCur->info.pPayload + iOffset); pBt = pPage->pBt; ovflPageSize = pBt->usableSize - 4; @@ -8223,7 +8225,7 @@ static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX){ if( sqlite3PagerPageRefcount(pPage->pDbPage)!=1 ){ rc = SQLITE_CORRUPT_BKPT; }else{ - if( iOffset+ovflPageSizeaData); }else{ ovflPageSize = nTotal - iOffset; @@ -8338,7 +8340,10 @@ int sqlite3BtreeInsert( if( (pCur->curFlags&BTCF_ValidNKey)!=0 && pX->nKey==pCur->info.nKey ){ /* The current is currently pointing to the entry that is to be ** overwritten */ - if( pCur->info.nSize!=0 && pCur->info.nPayload==pX->nData+pX->nZero ){ + assert( pX->nData>=0 && pX->nZero>=0 ); + if( pCur->info.nSize!=0 + && pCur->info.nPayload==(u32)pX->nData+pX->nZero + ){ return btreeOverwriteCell(pCur, pX); } loc = 0;