]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix an imbalanced lock problem in sqlite3Normalize() introduced by the
authordrh <drh@noemail.net>
Wed, 5 Dec 2018 21:55:39 +0000 (21:55 +0000)
committerdrh <drh@noemail.net>
Wed, 5 Dec 2018 21:55:39 +0000 (21:55 +0000)
simplification in [94ea6379178e3ff6a].

FossilOrigin-Name: f69624373e33c4d370a9264a317ffdb0adbce967a950f243de2b41161a8c7ded

manifest
manifest.uuid
src/prepare.c
test/normalize.test

index f14cf472037618ed4b960a233e49e32f22008348..3c6584f6a42f88a56f1e3a9ddababb0d8ebae7d8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Increase\sthe\sversion\snumber\sto\s3.27.0\sfor\sthe\snext\sdevelopment\scycle.
-D 2018-12-05T19:42:59.951
+C Fix\san\simbalanced\slock\sproblem\sin\ssqlite3Normalize()\sintroduced\sby\sthe\nsimplification\sin\s[94ea6379178e3ff6a].
+D 2018-12-05T21:55:39.342
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 68d0ba0f0b533d5bc84c78c13a6ce84ee81183a67014caa47a969e67f028fa1c
@@ -502,7 +502,7 @@ F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
 F src/pcache1.c ad0ffc5b35b0280d045ac569d34d4b842e3e6a4a118f6396b320987a0957afcc
 F src/pragma.c 4e056f042683b99c4ea0db395f68d051b1a95833ab40951c40d3ef7e1fee1354
 F src/pragma.h fdd03d78a7497f74a3f652909f945328480089189526841ae829ce7313d98d13
-F src/prepare.c f77ebf812f46a174e805d939cec0017771904e79049d04edf66dbbb3ec25ad3e
+F src/prepare.c 733d34a557cf2fb81af31fcf7c8df6a8070fcbef1a535ae120d2ff4fda99452d
 F src/printf.c 0f1177cf1dd4d7827bf64d840768514ec76409abecaca9e8b577dbd065150381
 F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 F src/resolve.c 976e7879286a1eecdc71ceff64f6d1b3f58c8f8096537ba668b3dc0887f410c1
@@ -1142,7 +1142,7 @@ F test/mutex2.test bfeaeac2e73095b2ac32285d2756e3a65e681660
 F test/nan.test 437d40e6d0778b050d7750726c0cbd2c9936b81962926e8f8c48ca698f00f4d1
 F test/nockpt.test 8c43b25af63b0bd620cf1b003529e37b6f1dc53bd22690e96a1bd73f78dde53a
 F test/nolock.test f196cf8b8fbea4e2ca345140a2b3f3b0da45c76e
-F test/normalize.test 6a80564d2000702b5919ed2c1069fef0f95762142bc96a71b4c124a845165713
+F test/normalize.test 17ff5c732bc16b100f4e479da3a59735ed24f4ed574fccf8e46279fad182f81e
 F test/notify1.test 669b2b743618efdc18ca4b02f45423d5d2304abf
 F test/notify2.test 2ecabaa1305083856b7c39cf32816b612740c161
 F test/notify3.test 10ff25cde502e72a92053a2f215d64bece4ef934
@@ -1782,7 +1782,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 94ea6379178e3ff6a0d1d5819ca4ac558bdadb1ca8a3637c797079db7dc0cd61
-R 07b88da37b5c39140160539d8ff1a5aa
+P 8f8d682825d065bcaebda4cba63f8b67789b923d8b62eb7c576a5bc01536f577
+R 54e3066009cd3484077d0fae620be2a9
 U drh
-Z 2d432cc7c63d4590326f1d8d2ea75b30
+Z dbd77411550a9172a53b37194b8bf655
index c71e9a627a46ef1a82931861a5ebcf14ab93f101..87911d8f7f882bf7f1393fd20c6155cd36de615f 100644 (file)
@@ -1 +1 @@
-8f8d682825d065bcaebda4cba63f8b67789b923d8b62eb7c576a5bc01536f577
\ No newline at end of file
+f69624373e33c4d370a9264a317ffdb0adbce967a950f243de2b41161a8c7ded
\ No newline at end of file
index 7ac96a68f6e57b4c21439cc2186736cc253c8063..20e10511b5e4ce351f3479a6c8e3a16e8d4ad3f9 100644 (file)
@@ -741,13 +741,13 @@ static int shouldTreatAsIdentifier(
   }
   if( sqlite3IsRowid(zId) ){
     bFound = 1;
-    goto done;
+    goto done1;
   }
   if( nToken>0 ){
     int hash = SQLITE_FUNC_HASH(sqlite3UpperToLower[(u8)zToken[0]], nToken);
     if( sqlite3FunctionSearch(hash, zId) ){
       bFound = 1;
-      goto done;
+      goto done1;
     }
   }
   assert( db!=0 );
@@ -781,18 +781,19 @@ static int shouldTreatAsIdentifier(
         }else{
           *pRc = SQLITE_NOMEM_BKPT;
           bFound = 0;
-          goto done;
+          goto done2;
         }
       }
       if( pHash && sqlite3HashFind(pHash, zId) ){
         bFound = 1;
-        goto done;
+        goto done2;
       }
     }
   }
-done:
+done2:
   sqlite3BtreeLeaveAll(db);
   sqlite3_mutex_leave(db->mutex);
+done1:
   if( zId!=zSpace ) sqlite3DbFree(db, zId);
   return bFound;
 }
index e85bd00332549652dfedb6678efec95944011228..35c995fe758efb9f493e6702cfdc8cab5f9af374 100644 (file)
@@ -86,7 +86,7 @@ do_test 201 {
 } {}
 do_test 202 {
   sqlite3_normalized_sql $STMT
-} {}
+} {SELECT a,b FROM t1 WHERE b=?ORDER BY a;}
 do_test 203 {
   sqlite3_finalize $STMT
 } {SQLITE_OK}