From: dan Date: Wed, 22 Apr 2026 19:25:12 +0000 (+0000) Subject: Add OOM test for the new code on this branch. X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=68b07ddd418aacdb54ed6dc388aa3d582040842b;p=thirdparty%2Fsqlite.git Add OOM test for the new code on this branch. FossilOrigin-Name: 685be705a2a69e79de0d581e5bbe9d942133817342121786a551d95d59a4af6c --- diff --git a/manifest b/manifest index 42d05f3e8a..0a90e06d66 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Mark\sbranches\sthat\sare\sbelieved\sto\sbe\sunreachable. -D 2026-04-22T19:12:48.603 +C Add\sOOM\stest\sfor\sthe\snew\scode\son\sthis\sbranch. +D 2026-04-22T19:25:12.997 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -802,7 +802,7 @@ F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165 F src/util.c 377af5da226519a0f374dc3c6d408c9d303a92943e3ae5986432c7d52e6679a2 F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82 -F src/vdbe.c 2b6df85980adb3d12c61d4cbffa6230efa882f63c4e3ab81001831beb758d24c +F src/vdbe.c 981719899b473de0c71b3559b7a313f280e1f4c1abf4eecded29867037d9cd05 F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71 F src/vdbeInt.h c31ba4dc8d280c2b1dc89c6fcee68f2555e3813ab34279552c20b964c0e338b1 F src/vdbeapi.c 6cdcbe5c7afa754c998e73d2d5d2805556268362914b952811bdfb9c78a37cf1 @@ -1105,7 +1105,7 @@ F test/existsexpr2.test dc23e76389eff3d29f6488ff733012a3560cd67ec8cfaecbecd52cce F test/existsfault.test ff41c11f3052c1bbd4f8dd557802310026253d67d7c4e3a180c16d2f0862973e F test/expr.test db981f8a85520e99ae20aab7ad2e9b5b0437ed09159b57ced434c672075d2e61 F test/expr2.test c27327ae9c017a7ff6280123f67aff496f912da74d78c888926d68b46ec75fd8 -F test/exprfault.test da33606d799718e2f8e34efd0e5858884a1ad87f608774c552a7f5517cc27181 +F test/exprfault.test 7475e363c7221847855722e9dd2459cf60088f6b172c0c808dba75f89e1704b8 F test/exprfault2.test c49e84273898969af5dbc4fe6a3f4335f14639799f343590336c9ddf84425965 F test/expridx1.test b464520126e1d781a7800f8540621c82e8bbc526f089ff8b0b57ffc51feea6b7 F test/expridx2.test 8890d483da880ce86bc5f2f6cd93c27af8a3b99871ed039fe385ee99dbeb9455 @@ -2203,8 +2203,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 5112f96cb1428693614b91bcca78326fccf7289e395a920339676ceeba871e3f -R b81c729d8d931370d59698df4d8d923d -U drh -Z 51be1ac13abf50f45b9e7dc7cfaa2e21 +P 18ed9736fbbea762e04b8ad156e83e577e60c5234a5e233540ad8664fe3b379c +R d93ff546001d5b8e63f19e558bfbb1fe +U dan +Z 49d8757ec0e1ba75534d92a2aa4cc9bf # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 75ba904096..d6f357ab35 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -18ed9736fbbea762e04b8ad156e83e577e60c5234a5e233540ad8664fe3b379c +685be705a2a69e79de0d581e5bbe9d942133817342121786a551d95d59a4af6c diff --git a/src/vdbe.c b/src/vdbe.c index 7ac59914c4..65c2d9a3fb 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -820,7 +820,7 @@ static SQLITE_NOINLINE int vdbeIndexKeyCompare( Mem m; memset(&m, 0, sizeof(m)); *pRc = sqlite3VdbeMemFromBtreeZeroOffset(pCsr, nKey, &m); - ret = (NEVER(*pRc!=SQLITE_OK) || 0==memcmp(pMem->z, m.z, nKey)); + ret = (*pRc!=SQLITE_OK || 0==memcmp(pMem->z, m.z, nKey)); sqlite3VdbeMemReleaseMalloc(&m); } @@ -6709,7 +6709,7 @@ case OP_IdxDelete: { } if( pOp->p3 && vdbeIndexKeyCompare(pCrsr, &aMem[pOp->p3], &rc) ){ - if( NEVER(rc) ) goto abort_due_to_error; + if( rc ) goto abort_due_to_error; sqlite3VdbeMemSetNull(&aMem[pOp->p3]); break; } diff --git a/test/exprfault.test b/test/exprfault.test index f0abe9ac39..a590e8f8c2 100644 --- a/test/exprfault.test +++ b/test/exprfault.test @@ -41,5 +41,26 @@ do_faultsim_test 2 -faults oom* -prep { faultsim_test_result {0 ABCDEF} } +#------------------------------------------------------------------------- +reset_db +do_execsql_test 3.0 { + PRAGMA page_size=1024; + CREATE TABLE t1(a INTEGER PRIMARY KEY, b); + CREATE INDEX i1 ON t1( hex(b) ); + INSERT INTO t1 VALUES(10, randomblob(500)); +} +faultsim_save_and_close + +do_faultsim_test 3 -faults oom* -prep { + faultsim_restore_and_reopen +} -body { + execsql { + UPDATE t1 SET b=randomblob(500); + } +} -test { + faultsim_test_result {0 {}} +} + + finish_test