From: drh <> Date: Mon, 20 Jul 2026 20:03:12 +0000 (+0000) Subject: Improved detection and reporting of deliberate misinformation in the X-Git-Url: http://git.ipfire.org/index.cgi?a=commitdiff_plain;h=684763d832b2d986f66bc1ba9e6d2268a09461fa;p=thirdparty%2Fsqlite.git Improved detection and reporting of deliberate misinformation in the sqlite_schema table. FossilOrigin-Name: 760af4e455e478f8ab72a574eb5f0141bb57e023beee3d16f9a8c02cbd726e45 --- diff --git a/manifest b/manifest index c0733f28fe..47d1a4a250 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\san\sincorrect\sALWAYS()\smacro\sfrom\sthe\simplementation\sof\sthe\ninternal\sexprNodeCanReturnSubtype()\sroutine\sso\sthat\sit\sworks\swith\nzero-argument\sdeterministic\sfunctions\slike\spi(). -D 2026-07-20T19:17:30.846 +C Improved\sdetection\sand\sreporting\sof\sdeliberate\smisinformation\sin\sthe\nsqlite_schema\stable. +D 2026-07-20T20:03:12.281 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -685,7 +685,7 @@ F src/btmutex.c 30dada73a819a1ef5b7583786370dce1842e12e1ad941e4d05ac29695528daea F src/btree.c 462c140d0c1af68d75fd13a082f3c08883cc90496c2f02054ec6ca3592ee4b1c F src/btree.h 2ee0ddfdf4f8530ad1d46afffd7da21a0e243bfab10973011ac6f6b7fb4109a1 F src/btreeInt.h 1e4a7d04e809e98abc39654b6089c60d749a724598041ff553b392a3277e9b98 -F src/build.c 86e97b26600535ab9dffd780ecbdb1560362e81bd2e9bcb179b52b2050c3302b +F src/build.c dda58ec56d7bfa6193c21e2ccb66547412169cd488d9f7f2d462c30cfd90ea64 F src/callback.c 3605bbf02bd7ed46c79cd48346db4a32fc51d67624400539c0532f4eead804ad F src/carray.c 3efe3982d5fb323334c29328a4e189ccaef6b95612a6084ad5fa124fd5db1179 F src/complete.c f216b970ce99c5a657556cf1f17e7ddd494515d3beb63df426bf59ff43bd3d9a @@ -803,7 +803,7 @@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9 F src/threads.c 85d8b9f05f78211c61e3739ab5db761d7118766d1916ae7f2764735106bc4e13 F src/tokenize.c e9d52d9f7374d82dadcd11726bea8a597d43709d6672704f3f0375bf1d726912 F src/treeview.c feaa59f14db4f7b5aacca9c5ad5aeb562c1f98262c1ffd74371f4186ade91fc5 -F src/trigger.c 5028874dd1f4fd3085bacd55c30114b5ad651525508656f65af09adf227181d5 +F src/trigger.c 74bc99aaa36dc820481960d4cde3cd7f060964525deebd527eee55ac3b6a2895 F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf F src/upsert.c dd9f0fcccbfb4f20e1026a21a7254ba3f2c08e9cfa92affaff5b5ec3b00ea549 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165 @@ -2216,8 +2216,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 8f0ad8f33f5e040eb70b0b77d730c2e785827621bb0ad21afd9ce2efe4dad921 -R af279e7d50cb31f2ea35455a662fcf66 +P a2511c6223a08033a2c5c66faee3afa50b992dc18de7a8498c8e3d24ce1376cc +R 35974747914c9cb01b475b116249dd8f U drh -Z 3128c0a312fc4ccc65b7c5dc80669919 +Z 9d343bcd1773b2ce75149e6b1746dd1a # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index cf9739ffe5..a4f632e77d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -a2511c6223a08033a2c5c66faee3afa50b992dc18de7a8498c8e3d24ce1376cc +760af4e455e478f8ab72a574eb5f0141bb57e023beee3d16f9a8c02cbd726e45 diff --git a/src/build.c b/src/build.c index 562c36e4ec..7c5c095af5 100644 --- a/src/build.c +++ b/src/build.c @@ -4102,8 +4102,9 @@ void sqlite3CreateIndex( if( sqlite3FindIndex(db, zName, pDb->zDbSName)!=0 ){ if( !ifNotExist ){ sqlite3ErrorMsg(pParse, "index %s already exists", zName); + }else if( db->init.busy ){ + sqlite3ErrorMsg(pParse,""); /* corruptSchema() will do the error */ }else{ - assert( !db->init.busy ); sqlite3CodeVerifySchema(pParse, iDb); sqlite3ForceNotReadOnly(pParse); } diff --git a/src/trigger.c b/src/trigger.c index 6ac9c1ffdb..0e96f3ebc0 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -206,8 +206,9 @@ void sqlite3BeginTrigger( if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash),zName) ){ if( !noErr ){ sqlite3ErrorMsg(pParse, "trigger %T already exists", pName); + }else if( db->init.busy ){ + sqlite3ErrorMsg(pParse,""); /* Err msg generated by corruptSchema() */ }else{ - assert( !db->init.busy ); sqlite3CodeVerifySchema(pParse, iDb); VVA_ONLY( pParse->ifNotExists = 1; ) }