From: drh <> Date: Sat, 27 Mar 2021 16:21:34 +0000 (+0000) Subject: For the sqlite3_bind_text16 TCL binding used for testing, ensure that there X-Git-Tag: version-3.36.0~285 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5e23ae500b916a5bb52f35769a391935f62efcfa;p=thirdparty%2Fsqlite.git For the sqlite3_bind_text16 TCL binding used for testing, ensure that there are at least 3 terminating zeros, so that there will always be a \u0000 character even if the original byte sequence is an odd number of bytes. FossilOrigin-Name: c23d092f37c535f88a47e9f55aa7b2fd40cfd5c50eec9191a68073d7f9141ecd --- diff --git a/manifest b/manifest index 1a82e0d700..10ed18ea20 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C In\sthe\ssqlite3_bind_text\sand\ssqlite3_bind_text16\sTCL\scommands\sof\sthe\stest\nsuite,\sensure\sthat\sthe\sstring\sis\szero-terminated\sif\sthe\ssize\sargument\sis\nnegative. -D 2021-03-26T23:59:37.423 +C For\sthe\ssqlite3_bind_text16\sTCL\sbinding\sused\sfor\stesting,\sensure\sthat\sthere\nare\sat\sleast\s3\sterminating\szeros,\sso\sthat\sthere\swill\salways\sbe\sa\s\\u0000\ncharacter\seven\sif\sthe\soriginal\sbyte\ssequence\sis\san\sodd\snumber\sof\sbytes. +D 2021-03-27T16:21:34.590 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -552,7 +552,7 @@ F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a3 F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1 F src/tclsqlite.c 986b6391f02cd9b53c1d688be55899f6ffddeb8e8014cd83c1b73ff912579a71 -F src/test1.c d5d0d715657a6b75e88d287a7a66c8411818d91e8412d75fdd815449ed5143d8 +F src/test1.c f5262c95b95aeb2b580101dc4657e7c0df5b25a5a9b7c456e2d3f463cef83fa9 F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5 F src/test3.c 61798bb0d38b915067a8c8e03f5a534b431181f802659a6616f9b4ff7d872644 F src/test4.c 7c4420e01c577b5c4add2cb03119743b1a357543d347773b9e717195ea967159 @@ -1911,7 +1911,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 54b41915ed8ef993b4116b2de00f3f4bba7570a1d28ad6bb93ba158a6b89eff3 -R 9b354d3e9bd417dba394c6169f3261ae +P f472fd64434cb2eac169587faa34bec489bc82002d529bc72dbfbba5251e5517 +R 9e091a36f447c6ad777be9227680f2e9 U drh -Z e1dfb5d13124d8522e37c5a32d2e98f5 +Z bdab8b445f301b8530dd8bb9c8ad1843 diff --git a/manifest.uuid b/manifest.uuid index 104b41246b..b74299ff59 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f472fd64434cb2eac169587faa34bec489bc82002d529bc72dbfbba5251e5517 \ No newline at end of file +c23d092f37c535f88a47e9f55aa7b2fd40cfd5c50eec9191a68073d7f9141ecd \ No newline at end of file diff --git a/src/test1.c b/src/test1.c index 38a736d023..7d13da3733 100644 --- a/src/test1.c +++ b/src/test1.c @@ -3902,14 +3902,13 @@ static int SQLITE_TCLAPI test_bind_text16( value = (char*)Tcl_GetByteArrayFromObj(oString, &trueLength); if( Tcl_GetIntFromObj(interp, oBytes, &bytes) ) return TCL_ERROR; if( bytes<0 && xDel==SQLITE_TRANSIENT ){ - toFree = malloc( trueLength + 2 ); + toFree = malloc( trueLength + 3 ); if( toFree==0 ){ Tcl_AppendResult(interp, "out of memory", (void*)0); return TCL_ERROR; } memcpy(toFree, value, trueLength); - toFree[trueLength] = 0; - toFree[trueLength+1] = 0; + memset(toFree+trueLength, 0, 3); value = toFree; } rc = sqlite3_bind_text16(pStmt, idx, (void *)value, bytes, xDel);