]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure the Btree mutex is held when setting the locking mode and the threadtest4
authordrh <drh@noemail.net>
Fri, 12 Dec 2014 00:40:58 +0000 (00:40 +0000)
committerdrh <drh@noemail.net>
Fri, 12 Dec 2014 00:40:58 +0000 (00:40 +0000)
secure delete flag when attaching a shared-cache database.

FossilOrigin-Name: 6bef7ede2bbf0a51729e1943b0b0c895cb57c718

manifest
manifest.uuid
src/attach.c

index 3dc59d55a4331d72b4c07487e262be6a2fe7ec5c..022b15647e5f430124a3d02628aebf74b4fa53a4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\sthe\scell\soverflow\spage\snumber\scache\sthread\srace\sfix\sfrom\strunk.
-D 2014-12-12T00:26:59.974
+C Make\ssure\sthe\sBtree\smutex\sis\sheld\swhen\ssetting\sthe\slocking\smode\sand\sthe\nsecure\sdelete\sflag\swhen\sattaching\sa\sshared-cache\sdatabase.
+D 2014-12-12T00:40:58.882
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 6c4f961fa91d0b4fa121946a19f9e5eac2f2f809
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -168,7 +168,7 @@ F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
 F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
 F src/alter.c ba266a779bc7ce10e52e59e7d3dc79fa342e8fdb
 F src/analyze.c 7a2986e6ea8247e5f21aca3d0b584598f58d84fe
-F src/attach.c f4e94df2d1826feda65eb0939f7f6f5f923a0ad9
+F src/attach.c 7f6b3fafa2290b407e4a94dcf1afda7ec0fe394b
 F src/auth.c b56c78ebe40a2110fd361379f7e8162d23f92240
 F src/backup.c 7ddee9c7d505e07e959a575b18498f17c71e53ea
 F src/bitvec.c 19a4ba637bd85f8f63fc8c9bae5ade9fb05ec1cb
@@ -1229,7 +1229,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P b7489f9451628c68f1dfc1d457fc161a0921c631 fc157dd7f18c94b7ae5f155e1b4a5d7714b7da8c
-R e0ac31855803c332d28311de41dcc42f
+P cefad47ec2ad58d7ecd58bab9a261e4d5816cd69
+R 43ea10bc03cfab6b8cae2a465b94aee2
 U drh
-Z 01b0e5c37f35211bc16bf2591a3974d7
+Z 01d198dabe70d93c23f2c971bf866fd9
index b6c1d34b27b3b12641617cc32d498864909b150d..2d4407626b2d46a18db213616fb4c534a083190a 100644 (file)
@@ -1 +1 @@
-cefad47ec2ad58d7ecd58bab9a261e4d5816cd69
\ No newline at end of file
+6bef7ede2bbf0a51729e1943b0b0c895cb57c718
\ No newline at end of file
index cf52bb24b126f84efde80f77f51c8fcaeaa992b7..de8742938b5f53979494391921df76aafd5d020e 100644 (file)
@@ -150,6 +150,7 @@ static void attachFunc(
         "attached databases must use the same text encoding as main database");
       rc = SQLITE_ERROR;
     }
+    sqlite3BtreeEnter(aNew->pBt);
     pPager = sqlite3BtreePager(aNew->pBt);
     sqlite3PagerLockingMode(pPager, db->dfltLockMode);
     sqlite3BtreeSecureDelete(aNew->pBt,
@@ -157,6 +158,7 @@ static void attachFunc(
 #ifndef SQLITE_OMIT_PAGER_PRAGMAS
     sqlite3BtreeSetPagerFlags(aNew->pBt, 3 | (db->flags & PAGER_FLAGS_MASK));
 #endif
+    sqlite3BtreeLeave(aNew->pBt);
   }
   aNew->safety_level = 3;
   aNew->zName = sqlite3DbStrDup(db, zName);