]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
For the sqlite3_bind_text16 TCL binding used for testing, ensure that there
authordrh <>
Sat, 27 Mar 2021 16:21:34 +0000 (16:21 +0000)
committerdrh <>
Sat, 27 Mar 2021 16:21:34 +0000 (16:21 +0000)
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

manifest
manifest.uuid
src/test1.c

index 1a82e0d70047cec4c1674913d05691808d7efc52..10ed18ea209faab30aead07886b0eac34d4b020c 100644 (file)
--- 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
index 104b41246bf631d1332f1f00fbb5ef45a953c41c..b74299ff594ce8d22d8ba2dd035e4138af3f18ed 100644 (file)
@@ -1 +1 @@
-f472fd64434cb2eac169587faa34bec489bc82002d529bc72dbfbba5251e5517
\ No newline at end of file
+c23d092f37c535f88a47e9f55aa7b2fd40cfd5c50eec9191a68073d7f9141ecd
\ No newline at end of file
index 38a736d0232cfbf8c49e3276da1f942d158c93fe..7d13da3733959b95b06cb478cbc5e2a9851eaf3d 100644 (file)
@@ -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);