]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure the sqlite3_result_pointer() interface does not leave a VM register
authordrh <drh@noemail.net>
Thu, 24 Aug 2017 14:04:31 +0000 (14:04 +0000)
committerdrh <drh@noemail.net>
Thu, 24 Aug 2017 14:04:31 +0000 (14:04 +0000)
in an inconsistent state.  Fix for ticket [7486aa54b968e9b5].  Test cases
are in TH3.

FossilOrigin-Name: abc7adfda27b67ef0e3eb4da72811aac7e838cc4bca183007c308dc46362fd1e

manifest
manifest.uuid
src/vdbeapi.c

index 5594bc496bbda6027207c3bb9c9f9d691562324f..dab1d3be9dfdf23d612c637f94a30694597983f5 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Version\s3.20.0
-D 2017-08-01T13:24:15.490
+C Make\ssure\sthe\ssqlite3_result_pointer()\sinterface\sdoes\snot\sleave\sa\sVM\sregister\nin\san\sinconsistent\sstate.\s\sFix\sfor\sticket\s[7486aa54b968e9b5].\s\sTest\scases\nare\sin\sTH3.
+D 2017-08-24T14:04:31.936
 F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016
@@ -523,7 +523,7 @@ F src/vacuum.c 874c0f2f15ab2908748297d587d22d485ea96d55aaec91d4775dddb2e24d2ecf
 F src/vdbe.c 1e541ec7ff409bbabcc6b4f154957296fff5827c16c2ab0056348acae75685bf
 F src/vdbe.h d50cadf12bcf9fb99117ef392ce1ea283aa429270481426b6e8b0280c101fd97
 F src/vdbeInt.h ff2b7db0968d20e6184aee256d2e535d565f5a172e3588a78adb166a41fc4911
-F src/vdbeapi.c 0823531191f9d5588a245ed5b39306798681814e9e8099d54a3213a13a28fbe7
+F src/vdbeapi.c d362429ebb02df609a71a24abb295406b47252a3caa231d0bd0d715033b5d362
 F src/vdbeaux.c 3fe68bad02b33b09e08bdc0ad90d6b92b3d571f7864c3d047abca1bde050751c
 F src/vdbeblob.c 359891617358deefc85bef7bcf787fa6b77facb9
 F src/vdbemem.c 9ca2854976f35db40341977e688a08204c96427505f5b90215dc7970f6ea42c4
@@ -1637,10 +1637,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 96ff1675721c744b5c1173a99fc2ad3a2df64ca8e931738e3a87c72a6f8b1e72
-R d54edcf59605e0e896e53b6d832d1e46
-T +bgcolor * #d0c0ff
-T +sym-release *
-T +sym-version-3.20.0 *
+P 9501e22dfeebdcefa783575e47c60b514d7c2e0cad73b2a496c0bc4b680900a8
+Q +d2f9230c5c7ad6166e7d2b649f77960fa58b1cb583e529a43882753ab348413c
+R 23b0ea14abc8da30d284a926d6ebd95e
 U drh
-Z ea5d6ee550aa5aa577909fef74ad40da
+Z c70586d4650d253eee17f42116d32ade
index 9e42b7b91ccc74b2224c36463272be2367f73f6a..4165f03f5e264c443e422118bb8038d78d33b4ee 100644 (file)
@@ -1 +1 @@
-9501e22dfeebdcefa783575e47c60b514d7c2e0cad73b2a496c0bc4b680900a8
\ No newline at end of file
+abc7adfda27b67ef0e3eb4da72811aac7e838cc4bca183007c308dc46362fd1e
\ No newline at end of file
index 24545e4f1263ef8ce70c48390480468b6cc7d07b..555721e96c4394bd1850b50637e48c4a8840a678 100644 (file)
@@ -398,7 +398,8 @@ void sqlite3_result_pointer(
 ){
   Mem *pOut = pCtx->pOut;
   assert( sqlite3_mutex_held(pOut->db->mutex) );
-  sqlite3VdbeMemSetNull(pOut);
+  sqlite3VdbeMemRelease(pOut);
+  pOut->flags = MEM_Null;
   sqlite3VdbeMemSetPointer(pOut, pPtr, zPType, xDestructor);
 }
 void sqlite3_result_subtype(sqlite3_context *pCtx, unsigned int eSubtype){