aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2023-10-07 08:00:54 +0000
committerdrh <>2023-10-07 08:00:54 +0000
commit43e232dc473ce88c6d707fea72e937cba21c1ff2 (patch)
tree65363751693e64cfa874056505f4942c3e3162a1 /src
parent00eee7a786bf165e10de253fe3da19d1057f4aad (diff)
downloadsqlite-43e232dc473ce88c6d707fea72e937cba21c1ff2.tar.gz
sqlite-43e232dc473ce88c6d707fea72e937cba21c1ff2.zip
Fix a resource leak: sqlite3_blob_reopen() was failing to invoke the
xDel() distructor on a register when it sets that register to the new rowid. This was never a problem prior to the large-column cache of [771fe35074b50b8d] as that destructor was always a no-op. dbsqlfuzz cd96368deaece480fb94d42427dde053737a650e. FossilOrigin-Name: 545edd5ecf20a7feb99dc5ce6f338fa1f172c2e17b240cbede497f0729dbd3d7
Diffstat (limited to 'src')
-rw-r--r--src/vdbeblob.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/vdbeblob.c b/src/vdbeblob.c
index 32987da13..ea6f016e3 100644
--- a/src/vdbeblob.c
+++ b/src/vdbeblob.c
@@ -59,8 +59,7 @@ static int blobSeekToRow(Incrblob *p, sqlite3_int64 iRow, char **pzErr){
/* Set the value of register r[1] in the SQL statement to integer iRow.
** This is done directly as a performance optimization
*/
- v->aMem[1].flags = MEM_Int;
- v->aMem[1].u.i = iRow;
+ sqlite3VdbeMemSetInt64(&v->aMem[1], iRow);
/* If the statement has been run before (and is paused at the OP_ResultRow)
** then back it up to the point where it does the OP_NotExists. This could