]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid dropping the error code following an OOM in fts5 when using 'secure-delete...
authordan <Dan Kennedy>
Sat, 15 Apr 2023 19:13:51 +0000 (19:13 +0000)
committerdan <Dan Kennedy>
Sat, 15 Apr 2023 19:13:51 +0000 (19:13 +0000)
FossilOrigin-Name: 9ee24a499c7b4a048f269f1c03c7c0b22b2898a3c23ea3e2511c2ba0342afa30

ext/fts5/fts5_index.c
ext/fts5/test/fts5securefault.test
manifest
manifest.uuid

index 5d16645ea319a8873ab5f7ef60d6c8d6dd684a51..a8662240d217166a842ffd587152c4d188ef90f0 100644 (file)
@@ -5000,7 +5000,7 @@ static void fts5FlushOneHash(Fts5Index *p){
             }
           }
 
-          if( bTermWritten==0 ){
+          if( p->rc==SQLITE_OK && bTermWritten==0 ){
             fts5WriteAppendTerm(p, &writer, nTerm, (const u8*)zTerm);
             bTermWritten = 1;
             assert( writer.bFirstRowidInPage==0 );
index 08aee2618ef4db4c8579000ba33b148d50c65458..f6124bd3bf4cb499d9ac8163cb8b0691dc6fd569 100644 (file)
@@ -167,5 +167,36 @@ do_faultsim_test 5.1 -faults oom* -prep {
   faultsim_test_result {0 {}}
 }
 
+#-------------------------------------------------------------------------
+#
+reset_db
+do_test 6.0 {
+  execsql {
+    CREATE VIRTUAL TABLE t1 USING fts5(ab);
+    INSERT INTO t1(t1, rank) VALUES('pgsz', 64);
+    BEGIN;
+      INSERT INTO t1(rowid, ab) VALUES(1, 'abcdefg');
+      INSERT INTO t1(rowid, ab) VALUES(2, 'abcdefg');
+      INSERT INTO t1(rowid, ab) VALUES(3, 'abcdefg');
+    COMMIT;
+  }
+} {}
+faultsim_save_and_close
+
+do_faultsim_test 6.1 -faults oom* -prep {
+  faultsim_restore_and_reopen
+  execsql {
+    INSERT INTO t1(t1, rank) VALUES('secure-delete', 1);
+  }
+} -body {
+  execsql { 
+    BEGIN;
+      UPDATE t1 SET ab='abcdefg' WHERE rowid=2;
+    COMMIT;
+  }
+} -test {
+  faultsim_test_result {0 {}}
+}
+
 
 finish_test
index 8d80405dcb000824a06090931f5c38de02b64f01..fcdf9706af4d5436ec30d80fec1ebbe5f30dd8fa 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\s-utf8\soption\sto\sCLI,\sfor\simproved\sconsole\sbehavior\son\sWindows.
-D 2023-04-15T17:56:43.253
+C Avoid\sdropping\sthe\serror\scode\sfollowing\san\sOOM\sin\sfts5\swhen\susing\s'secure-delete'\smode.
+D 2023-04-15T19:13:51.887
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -92,7 +92,7 @@ F ext/fts5/fts5_buffer.c 3001fbabb585d6de52947b44b455235072b741038391f830d6b7292
 F ext/fts5/fts5_config.c 46af0b3c3c3f00bfc5bdd307434d7c5f0fa0678a034dd48345cd83b20068efbd
 F ext/fts5/fts5_expr.c 48e8e45261c6030cf5c77f606217a22722b1a4d0b34e2ba6cbfc386581627989
 F ext/fts5/fts5_hash.c d4fb70940359f2120ccd1de7ffe64cc3efe65de9e8995b822cd536ff64c96982
-F ext/fts5/fts5_index.c 2e7829ffae1185961a87cec13052d9781e74eaf0d8831ea6743ee88f286f17ce
+F ext/fts5/fts5_index.c 185d989a3c875771d6a55e20d0f982590d194d79c36d78b90b1e593dc96ea615
 F ext/fts5/fts5_main.c b4dba04a36aaf9b8e8cef0100b6dbb422cc74753eacc11d6401cac7a87c0f38d
 F ext/fts5/fts5_storage.c 76c6085239eb44424004c022e9da17a5ecd5aaec859fba90ad47d3b08f4c8082
 F ext/fts5/fts5_tcl.c b1445cbe69908c411df8084a10b2485500ac70a9c747cdc8cda175a3da59d8ae
@@ -191,7 +191,7 @@ F ext/fts5/test/fts5secure.test 214a561519d1b1817f146efd1057e2a97cc896e75c2accc7
 F ext/fts5/test/fts5secure2.test 2e961d7eef939f294c56b5d895cac7f1c3a60b934ee2cfd5e5e620bdf1ba6bbc
 F ext/fts5/test/fts5secure3.test c7e1080a6912f2a3ac68f2e05b88b72a99de38543509b2bbf427cac5c9c1c610
 F ext/fts5/test/fts5secure4.test 17ac602024db3953401c3e51ad8e03de3b972c1770554585f63812ca4083550e
-F ext/fts5/test/fts5securefault.test d18e3cab7a3c4a66f44812202e1b0ea0b4bd0f9ee766951749737cfbab100e7e
+F ext/fts5/test/fts5securefault.test 66d3988ca96bef56d6143a6b40203a78eab4cf50665c93261a7b9021a8d81319
 F ext/fts5/test/fts5simple.test a298670508c1458b88ce6030440f26a30673931884eb5f4094ac1773b3ba217b
 F ext/fts5/test/fts5simple2.test 258a1b0c590409bfa5271e872c79572b319d2a56554d0585f68f146a0da603f0
 F ext/fts5/test/fts5simple3.test d5c74a9d3ca71bd5dd5cacb7c55b86ea12cdddfc8b1910e3de2995206898380f
@@ -2057,8 +2057,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 394980e4fe12125460ab14da41edae9089a4da332a46f3124bf0b9778793791f 543594a7277b12d1c58af8e3cba3841667cf924172995536489ce7da704a11d7
-R 62a74a4bec1e1957233b438563cd2695
-U larrybr
-Z 9c14b9b91eb32fedfce65c74265faeec
+P 414010d2366477285cb238f7af1e3d511ab4cda4bd4493441bd9868387dd5b66
+R db4ac6d716f6b37f938851dbdc9c0836
+U dan
+Z 1156bf072ee2940913d49643d9c3a7fc
 # Remove this line to create a well-formed Fossil manifest.
index 03cb98a35250a893480c9dfc65a96751d955341a..a2a6beba1d02271959b13b767c055a43aa35d164 100644 (file)
@@ -1 +1 @@
-414010d2366477285cb238f7af1e3d511ab4cda4bd4493441bd9868387dd5b66
\ No newline at end of file
+9ee24a499c7b4a048f269f1c03c7c0b22b2898a3c23ea3e2511c2ba0342afa30
\ No newline at end of file