From: drh Date: Fri, 18 Jan 2019 17:53:50 +0000 (+0000) Subject: Handle oversize floating point values carefully when converting to integers X-Git-Tag: version-3.27.0~127 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e3b89d2c5ffbe633327c22bfd44ccf20197fe5a3;p=thirdparty%2Fsqlite.git Handle oversize floating point values carefully when converting to integers for the '%' binary operator. FossilOrigin-Name: 048add13fc10e69ae504a49c4663612381d928b2cf1f9cdab4ff34bd40f601a3 --- diff --git a/manifest b/manifest index b33f791026..98deb1f9cd 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\sfairly\sobscure\sproblem\sallowing\san\s"ALTER\sTABLE\sRENAME\scol\sTO\s..."\sstatement\sto\smodify\sthe\sschema\sin\ssuch\sa\sway\sas\sto\sbreak\sa\sreference\swithin\sa\strigger\sprogram. -D 2019-01-18T16:06:18.719 +C Handle\soversize\sfloating\spoint\svalues\scarefully\swhen\sconverting\sto\sintegers\nfor\sthe\s'%'\sbinary\soperator. +D 2019-01-18T17:53:50.691 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 2a9d0331ab57c68173a4c2fe9046fe89c4d916a888e04dd7a2d36958c2bff777 @@ -584,7 +584,7 @@ F src/upsert.c 0dd81b40206841814d46942a7337786932475f085716042d0cb2fc7791bf8ca4 F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5 F src/util.c 82a2e3f691a3b654be872e305dab1f455e565dedf5e6a90c818c1ab307c00432 F src/vacuum.c a9f389f41556c0ec310bc9169dc9476603c30a0a913ad92bfbc75c86886967ca -F src/vdbe.c 1919d490e97bfc59eab4d43444a53a6717d06137295ed684a25e5df7430d9974 +F src/vdbe.c 090d40c688b56b4602fb196a78e9d17213f381984258131c1e8f665636ca35ac F src/vdbe.h 712bca562eaed1c25506b9faf9680bdc75fc42e2f4a1cd518d883fa79c7a4237 F src/vdbeInt.h a76d5eed62c76bcd8de7afd3147fac1bc40c5a870582664bcd7d071ef437c37f F src/vdbeapi.c 57a2d794a8833f269b878dbc24e955369bdb379af6c4e93ebc5ce1a20fa3daf4 @@ -1800,7 +1800,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 05df5f7aeaf2132810452e8871132d1e66650a841991cb2a9ce32f2d03e20bf4 -R f8fd80d19fb63224c47a5c696f5a7a57 -U dan -Z 4f2ee8716e9e64841d044a5ee936a34b +P 64bec9e6214c6932fab5a3fb8c569ae14cd2d603bd0f8b26104815c3bb9d396a +R 23c489a2ae8dd47d8c5f4c714346499a +U drh +Z de4950d4f9709c315a07de45d8efeea5 diff --git a/manifest.uuid b/manifest.uuid index cfd314bede..addd26dfcd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -64bec9e6214c6932fab5a3fb8c569ae14cd2d603bd0f8b26104815c3bb9d396a \ No newline at end of file +048add13fc10e69ae504a49c4663612381d928b2cf1f9cdab4ff34bd40f601a3 \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 82ab91e0e2..2c2b0ee272 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -1583,8 +1583,8 @@ fp_math: break; } default: { - iA = (i64)rA; - iB = (i64)rB; + iA = sqlite3VdbeIntValue(pIn1); + iB = sqlite3VdbeIntValue(pIn2); if( iA==0 ) goto arithmetic_result_is_null; if( iA==-1 ) iA = 1; rB = (double)(iB % iA);