]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove an assert() in the code generator that can fail due to an invalid
authordrh <drh@noemail.net>
Wed, 18 Dec 2019 01:31:21 +0000 (01:31 +0000)
committerdrh <drh@noemail.net>
Wed, 18 Dec 2019 01:31:21 +0000 (01:31 +0000)
INSERT statement.  The same assert() appears again in the VDBE and will fire
there if the problem persists in an SQL statement that does not contain
errors.  Gramfuzz find.

FossilOrigin-Name: 9bdd57cb9ad8ac1f4a0f1a3942d94ca5193109eeb1975343c4f0c7abf7135946

manifest
manifest.uuid
src/expr.c
test/select1.test

index 1e7db3910cce3f76c48512c5337022fc4d2d07cc..d052b996da3617f6a7b6241c17d80a2765c2d7ca 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C When\sprocessing\sconstant\sinteger\svalues\sin\sORDER\sBY\sclauses\sof\swindow\ndefinitions\s(see\scheck-in\s[7e4809eadfe99ebf])\sbe\ssure\sto\sfully\sdisable\nthe\sconstant\svalue\sto\savoid\san\sinvalid\spointer\sdereference\sif\sthe\sexpression\nis\sever\sduplicated.\sThis\sfixes\sa\scrash\sreport\sfrom\sYongheng\sand\sRui.
-D 2019-12-18T00:05:50.510
+C Remove\san\sassert()\sin\sthe\scode\sgenerator\sthat\scan\sfail\sdue\sto\san\sinvalid\nINSERT\sstatement.\s\sThe\ssame\sassert()\sappears\sagain\sin\sthe\sVDBE\sand\swill\sfire\nthere\sif\sthe\sproblem\spersists\sin\san\sSQL\sstatement\sthat\sdoes\snot\scontain\nerrors.\s\sGramfuzz\sfind.
+D 2019-12-18T01:31:21.798
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -479,7 +479,7 @@ F src/date.c e1d8ac7102f3f283e63e13867acb0efa33861cf34f0faf4cdbaf9fa7a1eb7041
 F src/dbpage.c 135eb3b5e74f9ef74bde5cec2571192c90c86984fa534c88bf4a055076fa19b7
 F src/dbstat.c 6c407e549406c10fde9ac3987f6d734459205239ad370369bc5fcd683084a4fa
 F src/delete.c a5c59b9c0251cf7682bc52af0d64f09b1aefc6781a63592c8f1136f7b73c66e4
-F src/expr.c 6346d23442ab7e26b1afdeb04badeb0ec49f3ce3d35dd4e3cf91a8e1e4efe22d
+F src/expr.c a0330e4035f958bd5dd734fe8b05a5a9ac1c4c3a1eda4ef69b34bce6be1ce2ba
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 92a248ec0fa4ed8ab60c98d9b188ce173aaf218f32e7737ba77deb2a684f9847
 F src/func.c ed33e38cd642058182a31a3f518f2e34f4bbe53aa483335705c153c4d3e50b12
@@ -1294,7 +1294,7 @@ F test/schema6.test e4bd1f23d368695eb9e7b51ef6e02ca0642ea2ab4a52579959826b5e7dce
 F test/schemafault.test 1936bceca55ac82c5efbcc9fc91a1933e45c8d1e1d106b9a7e56c972a5a2a51e
 F test/securedel.test 2f70b2449186a1921bd01ec9da407fbfa98c3a7a5521854c300c194b2ff09384
 F test/securedel2.test 2d54c28e46eb1fd6902089958b20b1b056c6f1c5
-F test/select1.test 703154cbf66d0a9fbbd5b771dc3d2c4d3700121d133d695958d4a9c5a33251e8
+F test/select1.test b887331202618dbdabed92446b661ebd95a55ef3923700af56ed71266e9c1157
 F test/select2.test 352480e0e9c66eda9c3044e412abdf5be0215b56
 F test/select3.test 3905450067c28766bc83ee397f6d87342de868baa60f2bcfd00f286dfbd62cb9
 F test/select4.test 5389d9895968d1196c457d59b3ee6515d771d328
@@ -1852,7 +1852,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 8223e79f987feda5c8e51ec52cec6798cca16d070b10558939e2888ca1a25b8e
-R b2173cceb9c7cb44c37df84c9f42b08c
+P 1ca0bd982ab1183bbafce0d260e4dceda5eb766ed2e7793374a88d1ae0bdd2ca
+R 092a651653668f530eef3aa12db79af2
 U drh
-Z 156cc4a0e438e4b57215f0738876dab1
+Z 46ff68601fa617a2914722b9a7e1adba
index eb9ffcac8f8733d352fdfa65b83bd67b90f7b233..e6c8929e72b333441c6ed6e7fd3b0ae8a63ef9e2 100644 (file)
@@ -1 +1 @@
-1ca0bd982ab1183bbafce0d260e4dceda5eb766ed2e7793374a88d1ae0bdd2ca
\ No newline at end of file
+9bdd57cb9ad8ac1f4a0f1a3942d94ca5193109eeb1975343c4f0c7abf7135946
\ No newline at end of file
index 981e18a8ecb153e367ec61a084d845a19022ba2d..ea59062656f8e7eb36d419a8bd90f6bb4370d78f 100644 (file)
@@ -3507,7 +3507,6 @@ int sqlite3ExprCodeGetColumn(
 ** over to iTo..iTo+nReg-1.
 */
 void sqlite3ExprCodeMove(Parse *pParse, int iFrom, int iTo, int nReg){
-  assert( iFrom>=iTo+nReg || iFrom+nReg<=iTo );
   sqlite3VdbeAddOp3(pParse->pVdbe, OP_Move, iFrom, iTo, nReg);
 }
 
index 27191caf67afaf0c12ea23f1a94b98c4e51b7f61..47dcd0fe4a949dffab2dda12aca033a8562ba395 100644 (file)
@@ -1165,4 +1165,24 @@ do_execsql_test select1-18.4 {
   );
 } {1}
 
+# 2019-12-17 gramfuzz find
+#
+do_execsql_test select-19.10 {
+  DROP TABLE IF EXISTS t1;
+  CREATE TABLE t1(x);
+} {}
+do_catchsql_test select-19.20 {
+  INSERT INTO t1
+    SELECT 1,2,3,4,5,6,7
+    UNION ALL SELECT 1,2,3,4,5,6,7
+    ORDER BY 1;
+} {1 {table t1 has 1 columns but 7 values were supplied}}
+do_catchsql_test select-19.21 {
+  INSERT INTO t1
+    SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
+    UNION ALL SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
+    ORDER BY 1;
+} {1 {table t1 has 1 columns but 15 values were supplied}}
+
+
 finish_test