]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a parsing issue associated with a corrupt sqlite_master table.
authormistachkin <mistachkin@noemail.net>
Fri, 16 Mar 2018 19:10:05 +0000 (19:10 +0000)
committermistachkin <mistachkin@noemail.net>
Fri, 16 Mar 2018 19:10:05 +0000 (19:10 +0000)
FossilOrigin-Name: 5f779ff6b48ec97efacd49b1715b7e5272694fa839be349c90667812bbffe22b

manifest
manifest.uuid
src/parse.y

index d12cd67b7915ec7d7b638e290628273d0b53d8fb..ed8d0b92d8ca8f274800aa7440e9e1b5c22fbfff 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sproblem\sin\stest\sscript\sthread001.test\scausing\sa\sspurious\s"-1\sfiles\swere\nleft\sopen"\serror\swhen\srun\sseparately.
-D 2018-03-16T07:48:43.361
+C Fix\sa\sparsing\sissue\sassociated\swith\sa\scorrupt\ssqlite_master\stable.
+D 2018-03-16T19:10:05.855
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 7016fc56c6b9bfe5daac4f34be8be38d8c0b5fab79ccbfb764d3b23bf1c6fff3
@@ -478,7 +478,7 @@ F src/os_win.c eb03c6d52f893bcd7fdd4c6006674c13c1b5e49543fec98d605201af2997171c
 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
 F src/pager.c 3e3b659b6b3f40b5a5efef6b8890ced490c397a81d96feb5266fde1f7362e608
 F src/pager.h 581698f2177e8bd4008fe4760898ce20b6133d1df22139b9101b5155f900df7a
-F src/parse.y 3be4b2b5e33ef7dab3128b765898ee786fc6cd698a7f053f756a68f2f238f0aa
+F src/parse.y 927e287566764c08e3dbf663a433518e2599fe1d3780386db69df64b4d70a146
 F src/pcache.c 135ef0bc6fb2e3b7178d49ab5c9176254c8a691832c1bceb1156b2fbdd0869bd
 F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170
 F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880
@@ -1712,7 +1712,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 f1784aff4e6ff1c84d3fa0069034290154220fd2fa85c7df342c717ad54f4b91
-R 6365d4cb8120ab9ac72d818a9b1d70a0
-U dan
-Z b450edce4db91ca834c891cd7015f37d
+P 1774f1c3baf0bc3d83a53c52702696ff21814fa1de07cc38fd098832e6757b09
+R 28201db53ed454b9421b2d31c19681b6
+U mistachkin
+Z 278594336baa790fc171fbd2e9db3256
index 0e8f474cb201fab2623461006a80f2e6bddf397e..e23a8d14348478dee3865f257ae127f35bf86f20 100644 (file)
@@ -1 +1 @@
-1774f1c3baf0bc3d83a53c52702696ff21814fa1de07cc38fd098832e6757b09
\ No newline at end of file
+5f779ff6b48ec97efacd49b1715b7e5272694fa839be349c90667812bbffe22b
\ No newline at end of file
index 9c41484ab21900711c5b235290c4c8310da99108..638960d24217a79cf68732eac6c16958fddd772b 100644 (file)
@@ -169,8 +169,13 @@ create_table_args ::= LP columnlist conslist_opt(X) RP(E) table_options(F). {
   sqlite3EndTable(pParse,&X,&E,F,0);
 }
 create_table_args ::= AS select(S). {
-  sqlite3EndTable(pParse,0,0,0,S);
-  sqlite3SelectDelete(pParse->db, S);
+  if( pParse->db->init.busy==0 ){
+    sqlite3EndTable(pParse,0,0,0,S);
+    sqlite3SelectDelete(pParse->db, S);
+  }else{
+    sqlite3SelectDelete(pParse->db, S);
+    sqlite3ErrorMsg(pParse, "corrupt schema");
+  }
 }
 %type table_options {int}
 table_options(A) ::= .    {A = 0;}