From 6f9d68817cddd4491a225403e8aa9125ee199fe5 Mon Sep 17 00:00:00 2001 From: drh <> Date: Fri, 4 Mar 2022 16:28:24 +0000 Subject: [PATCH] When setting an sqlite3_value object to a pointer value, make sure any prior memory allocations associated with that object have been cleared first. dbsqlfuzz 33f842d1a09afaad5f078c3e1162a54b78e5f2ab. FossilOrigin-Name: 31e1bde4b20bec4242b4101adad29bfa85648ea703d6e8c5c75e8c49b54a3a0f --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/vdbemem.c | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/manifest b/manifest index 8705c1f52f..d67961edef 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Restore\sthe\sability\sto\spush-down\sOR\ssubterms\sof\sthe\sWHERE\sclause\swhen\nprocessing\sa\smulti-index\sOR. -D 2022-03-03T19:40:21.148 +C When\ssetting\san\ssqlite3_value\sobject\sto\sa\spointer\svalue,\smake\ssure\sany\sprior\nmemory\sallocations\sassociated\swith\sthat\sobject\shave\sbeen\scleared\sfirst.\ndbsqlfuzz\s33f842d1a09afaad5f078c3e1162a54b78e5f2ab. +D 2022-03-04T16:28:24.220 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -630,7 +630,7 @@ F src/vdbeInt.h 8dd91427155a38ec06e9ecbde07e33f21bc02e101625191e7613f883e379a363 F src/vdbeapi.c 1c80efbe51118bbecc7279023e75d18edcfa4b3dc441287e1718ee70ad594f58 F src/vdbeaux.c 280383a4c7fc567e30266cf72bb5031c252bc4cbc1a80d4e1461d77c4bd01547 F src/vdbeblob.c 5e61ce31aca17db8fb60395407457a8c1c7fb471dde405e0cd675974611dcfcd -F src/vdbemem.c ff564b58f49a9e982414c8ecde99e416eff939e7cbb0333aa976610430fd8038 +F src/vdbemem.c 57fceb4ed6aac960e9517c963dc0668189e8b7c8e6216d257030a2f5e9a583df F src/vdbesort.c 43756031ca7430f7aec3ef904824a7883c4ede783e51f280d99b9b65c0796e35 F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1945f1d2e6be5927ec12c06d89b03ef2a4def34bf823 F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c @@ -1944,8 +1944,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 725a06434b886c96bb816340ef236530672a4593f0ceb3230ce69c8367beb997 -R 4b254954a632dbd7b6a27be8beffe3fb +P d71fb6fdc32d2fce73059b6ab86d7d7bbc812c637469755dd45b6794aadc3a80 +R 65843abfd17a21a032904c45a4211684 U drh -Z 721c2ad23ec3a940469fd54f5a97ae6c +Z 30a89616aec618962c425515c30f7a87 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index f321fa2422..70d5b1929a 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d71fb6fdc32d2fce73059b6ab86d7d7bbc812c637469755dd45b6794aadc3a80 \ No newline at end of file +31e1bde4b20bec4242b4101adad29bfa85648ea703d6e8c5c75e8c49b54a3a0f \ No newline at end of file diff --git a/src/vdbemem.c b/src/vdbemem.c index 1795bb7d76..516a06b71e 100644 --- a/src/vdbemem.c +++ b/src/vdbemem.c @@ -924,6 +924,7 @@ void sqlite3VdbeMemSetPointer( void (*xDestructor)(void*) ){ assert( pMem->flags==MEM_Null ); + vdbeMemClear(pMem); pMem->u.zPType = zPType ? zPType : ""; pMem->z = pPtr; pMem->flags = MEM_Null|MEM_Dyn|MEM_Subtype|MEM_Term;