Prevent deep recursions on nested COLLATE operators.

FossilOrigin-Name: 6e098ee415f1a530e17a942c9ba51d67c25a3ebff6b97377b7858d0b10bcec92
This commit is contained in:
drh 2018-04-28 04:16:43 +00:00
parent 6bfd973ce6
commit 1efa8023a1
3 changed files with 10 additions and 8 deletions

View File

@ -1,5 +1,5 @@
C Fix\scompiler\swarnings\sin\sFTS3.
D 2018-04-28T04:10:55.343
C Prevent\sdeep\srecursions\son\snested\sCOLLATE\soperators.
D 2018-04-28T04:16:43.197
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F Makefile.in 5ce9343cba9c189046f1afe6d2bcc1f68079439febc05267b98aec6ecc752439
@ -444,7 +444,7 @@ F src/date.c ebe1dc7c8a347117bb02570f1a931c62dd78f4a2b1b516f4837d45b7d6426957
F src/dbpage.c 8db4c97f630e7d83f884ea75caf1ffd0988c160e9d530194d93721c80821e0f6
F src/dbstat.c edabb82611143727511a45ca0859b8cd037851ebe756ae3db289859dd18b6f91
F src/delete.c b0f90749e22d5e41a12dbf940f4811138cf97da54b46b737089b93eb64a2896f
F src/expr.c 4a39bc2a9a3d825571519a1910ecfe3d4b6d596e775c9ed7cef7497ea06140ac
F src/expr.c 5c9a6dc7f56d245d7bb82ba36fdba2ca3bdd1881b61ee60293dd98c766742cd9
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c d617daf66b5515e2b42c1405b2b4984c30ca50fb705ab164271a9bf66c69e331
F src/func.c 94f42cba2cc1c34aeaa441022ba0170ec3fec4bba54db4e0ded085c6dc0fdc51
@ -1725,7 +1725,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 7626b593405ca720e371b9f698b72b499b7c829bfe00f758140bc542cf970689
R bc4e19febfa29f170cd1236e27a6cd06
P de508e831a43f02c3b354a24ea34798da03c163bae5521c852c9ddd252723739
R 8fd56e6836e3af3199f94071c5426607
U drh
Z f3d84a2a64c7f56d5340275e017905e0
Z 830b9867ea719a4d0d43e83e413c3907

View File

@ -1 +1 @@
de508e831a43f02c3b354a24ea34798da03c163bae5521c852c9ddd252723739
6e098ee415f1a530e17a942c9ba51d67c25a3ebff6b97377b7858d0b10bcec92

View File

@ -3551,6 +3551,7 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
return 0;
}
expr_code_doover:
if( pExpr==0 ){
op = TK_NULL;
}else{
@ -4011,7 +4012,8 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){
case TK_SPAN:
case TK_COLLATE:
case TK_UPLUS: {
return sqlite3ExprCodeTarget(pParse, pExpr->pLeft, target);
pExpr = pExpr->pLeft;
goto expr_code_doover;
}
case TK_TRIGGER: {