]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix another problem to do with recovering from in-memory databases.
authordan <Dan Kennedy>
Thu, 27 Oct 2022 19:06:42 +0000 (19:06 +0000)
committerdan <Dan Kennedy>
Thu, 27 Oct 2022 19:06:42 +0000 (19:06 +0000)
FossilOrigin-Name: 5a7bfd4a217cd80882a1827674b479cdc547419a785e06e0ee82cb8cfca42701

ext/recover/sqlite3recover.c
manifest
manifest.uuid

index 41aad842456569c5e993f5c50d54c8676c4b3ea1..7e284931a3652bc85954756016d5c3141de1d030 100644 (file)
@@ -2497,7 +2497,7 @@ static void recoverInstallWrapper(sqlite3_recover *p){
   recoverAssertMutexHeld();
   sqlite3_file_control(p->dbIn, p->zDb, SQLITE_FCNTL_FILE_POINTER, (void*)&pFd);
   assert( pFd==0 || pFd->pMethods!=&recover_methods );
-  if( pFd ){
+  if( pFd && pFd->pMethods ){
     int iVersion = 1 + (pFd->pMethods->iVersion>1 && pFd->pMethods->xShmMap!=0);
     recover_g.pMethods = pFd->pMethods;
     recover_g.p = p;
@@ -2515,7 +2515,7 @@ static void recoverUninstallWrapper(sqlite3_recover *p){
   recoverAssertMutexHeld();
   sqlite3_file *pFd = 0;
   sqlite3_file_control(p->dbIn, p->zDb,SQLITE_FCNTL_FILE_POINTER,(void*)&pFd);
-  if( pFd ){
+  if( pFd && pFd->pMethods ){
     pFd->pMethods = recover_g.pMethods;
     recover_g.pMethods = 0;
     recover_g.p = 0;
index 4540f2893c5befdad54905c35d33efc3a1164203..7d4485263d5a224a3ed0b26ee44e6b41ce8e319a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Ensure\sthat\sthe\sVFS\swrapper\sin\sthe\srecover\sextension\sdoes\snot\sattempt\sto\sinvoke\sundefined\smethods\son\sthe\sunderlying\sVFS.
-D 2022-10-27T19:02:51.201
+C Fix\sanother\sproblem\sto\sdo\swith\srecovering\sfrom\sin-memory\sdatabases.
+D 2022-10-27T19:06:42.311
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -398,7 +398,7 @@ F ext/recover/recoverpgsz.test 93e970eab05e4e89f8fd6b1bd23f9ec137ea09857e66ba0d4
 F ext/recover/recoverrowid.test 1694a1a5526d825f71279f3d02ab02a1ee4c5265de18858bf54cb8ec54487ac8
 F ext/recover/recoverslowidx.test f356bb9fba7ffd6fc50e045e419464f0129ac6e24decf6e919584f79c3493727
 F ext/recover/recoversql.test f9872ff2114e13ffd8ee31e1de06919f62b9b48bc080191b5bd076d10becb60f
-F ext/recover/sqlite3recover.c 5f7ace27d8e69d350a20171f13ebe964f090906ff0a74eb0fb4582c391c44dc5
+F ext/recover/sqlite3recover.c b8f4b3a58bc81f2d31ca4645a7dddfc4dedd9a06e66471f827932cc63edc2bc0
 F ext/recover/sqlite3recover.h f698ccc94bd4da38761035415ad08c4549a408491ff9fd5f52d34d2214f64e36
 F ext/recover/test_recover.c 61ec931e47abca6b2210f46239cafd9f3060741605e3d3c45a7c7a53f63dd957
 F ext/repair/README.md 92f5e8aae749a4dae14f02eea8e1bb42d4db2b6ce5e83dbcdd6b1446997e0c15
@@ -2052,8 +2052,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 44c0874c33e76ce708022e5c38c74f75565a8cea9f4c5b067cc0a54079aeee20
-R 2a9f1c8744e1f06e55a5b9eca0aedd6c
+P 347c575108bc8112613a02afda1247bdbed24c15def7eb412d0b27aba047715b
+R 8cb4c38216254872472236af72461bb8
 U dan
-Z 2859b7a2df62a00c975fd7e3b56edbdb
+Z 43cd6d4bbed8e35cf002f980c0324c18
 # Remove this line to create a well-formed Fossil manifest.
index 10ccc61b4a6b4a8b1c98048b7c424cb0d5501968..f0b11563294eef1e0a5dd265b9c0e47dd6fc81e6 100644 (file)
@@ -1 +1 @@
-347c575108bc8112613a02afda1247bdbed24c15def7eb412d0b27aba047715b
\ No newline at end of file
+5a7bfd4a217cd80882a1827674b479cdc547419a785e06e0ee82cb8cfca42701
\ No newline at end of file