From: drh <> Date: Wed, 9 Nov 2022 11:02:39 +0000 (+0000) Subject: Additional defense against corrupt database files in dbdata.c. X-Git-Tag: version-3.40.0~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea038d3d239aba5b10577fb4aa3a8fc33bad2a4a;p=thirdparty%2Fsqlite.git Additional defense against corrupt database files in dbdata.c. FossilOrigin-Name: 2e70d1e5c9b2c9e068be3ccf8a6062edf7bdde2e46d60ba8ce54eda851af6008 --- diff --git a/ext/recover/dbdata.c b/ext/recover/dbdata.c index 8419e08148..9563ab502a 100644 --- a/ext/recover/dbdata.c +++ b/ext/recover/dbdata.c @@ -864,7 +864,7 @@ static int dbdataColumn( case DBDATA_COLUMN_VALUE: { if( pCsr->iField<0 ){ sqlite3_result_int64(ctx, pCsr->iIntkey); - }else{ + }else if( &pCsr->pRec[pCsr->nRec] >= pCsr->pPtr ){ sqlite3_int64 iType; dbdataGetVarintU32(pCsr->pHdrPtr, &iType); dbdataValue( diff --git a/manifest b/manifest index b7f39970ae..7677d99d4f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Increase\sthe\sprecision\sof\sthe\snData\sparameter\sto\sthe\sdbdataValue()\sroutine\ninside\sthe\ssqlite_dbdata\svirtual\stable,\sto\savoid\sthe\spossibility\sof\sinteger\noverflow. -D 2022-11-09T10:17:25.458 +C Additional\sdefense\sagainst\scorrupt\sdatabase\sfiles\sin\sdbdata.c. +D 2022-11-09T11:02:39.285 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -386,7 +386,7 @@ F ext/rbu/rbuvacuum4.test a78898e438a44803eb2bc897ba3323373c9f277418e2d6d76e90f2 F ext/rbu/sqlite3rbu.c c4ba7901b2d3e0c7845f30840e3ffb35c6f999d6da0d80f121866491f982794c F ext/rbu/sqlite3rbu.h 02d981e2d39c151391759e1a400e29c7388730812957ac3db8dad7f6c9f9cfc8 F ext/rbu/test_rbu.c ee6ede75147bc081fe9bc3931e6b206277418d14d3fbceea6fdc6216d9b47055 -F ext/recover/dbdata.c ac61a3fcd8b94ef195c7c9241f7eb1ac6401b4634b5b532a8ffe910c5aaef70d +F ext/recover/dbdata.c 8f1f75d636431de69d7977ec50fc41bfdd0c48c510d5ee7eae0cbd4164e1429a F ext/recover/recover1.test 02004eb8f9ec2825ba77e24742c18e45162cb21d27e76a3a435b83a759a1131a F ext/recover/recover_common.tcl a61306c1eb45c0c3fc45652c35b2d4ec19729e340bdf65a272ce4c229cefd85a F ext/recover/recoverclobber.test 3ba6c0c373c5c63d17e82eced64c05c57ccaf26c1abe1ca7141334022a79f32e @@ -2055,8 +2055,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 77ccc8ea8a901df64feabe08e1210087d060f0bc133242e87a94a71b68b5b5fa -R 545f66eddeec93de8c190e3a826342d9 +P 295447b44fc7658891352a9b3f792379b52a76ee5dcfd498b7028f5f87b40e9e +R 851325ef7ac3ed67898936647c7dda82 U drh -Z ccc0668e4034ef7e9d99a59bf656580b +Z e6b9c092d6b173c8cc4ef1e11fdfe252 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index a60c80038c..2abf6a44c6 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -295447b44fc7658891352a9b3f792379b52a76ee5dcfd498b7028f5f87b40e9e \ No newline at end of file +2e70d1e5c9b2c9e068be3ccf8a6062edf7bdde2e46d60ba8ce54eda851af6008 \ No newline at end of file