]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add OOM test for the new code on this branch. index-detect-noop
authordan <Dan Kennedy>
Wed, 22 Apr 2026 19:25:12 +0000 (19:25 +0000)
committerdan <Dan Kennedy>
Wed, 22 Apr 2026 19:25:12 +0000 (19:25 +0000)
FossilOrigin-Name: 685be705a2a69e79de0d581e5bbe9d942133817342121786a551d95d59a4af6c

manifest
manifest.uuid
src/vdbe.c
test/exprfault.test

index 42d05f3e8ac15b665577837df997b165d9cb7595..0a90e06d66697047847ae3547be71e75f1008c10 100644 (file)
--- 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.
index 75ba9040961a850ad2e8479a077380230aeafdf5..d6f357ab355f19e252cf5e0c3ac94cff62f66f92 100644 (file)
@@ -1 +1 @@
-18ed9736fbbea762e04b8ad156e83e577e60c5234a5e233540ad8664fe3b379c
+685be705a2a69e79de0d581e5bbe9d942133817342121786a551d95d59a4af6c
index 7ac59914c4837bbf89289aa5ccd0f66211d3bb14..65c2d9a3fb4986ab93586ae619f1a75eb5d7742b 100644 (file)
@@ -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;
   }
index f0abe9ac39938793aafa0fa04729378ba0a75f51..a590e8f8c2d8f6512d32ca159872841a9673a85d 100644 (file)
@@ -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