diff options
author | drh <> | 2023-07-29 22:58:47 +0000 |
---|---|---|
committer | drh <> | 2023-07-29 22:58:47 +0000 |
commit | b47e1c78668f32f7786f0184955ce1ec10777ba6 (patch) | |
tree | 67a3939c82e184cb448b4c8d2de833838209bc93 /src | |
parent | e809d84618287b24129d414e6c5878959cdb89d0 (diff) | |
download | sqlite-b47e1c78668f32f7786f0184955ce1ec10777ba6.tar.gz sqlite-b47e1c78668f32f7786f0184955ce1ec10777ba6.zip |
Do not try to add MEM_Term to an MEM_Static string either.
FossilOrigin-Name: 8920dcef1f75f578e3f274ab2b980a83d6ea6b761d99fc48410b26886170597b
Diffstat (limited to 'src')
-rw-r--r-- | src/vdbemem.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/vdbemem.c b/src/vdbemem.c index 1052bb2f6..0f5117dad 100644 --- a/src/vdbemem.c +++ b/src/vdbemem.c @@ -322,7 +322,10 @@ int sqlite3VdbeMemClearAndResize(Mem *pMem, int szNew){ ** this routine is a no-op. */ void sqlite3VdbeMemZeroTerminateIfAble(Mem *pMem){ - if( (pMem->flags & (MEM_Str|MEM_Term|MEM_Ephem))!=MEM_Str ) return; + if( (pMem->flags & (MEM_Str|MEM_Term|MEM_Ephem|MEM_Static))!=MEM_Str ){ + /* pMem must be a string, and it cannot be an ephemeral or static string */ + return; + } if( pMem->enc!=SQLITE_UTF8 ) return; if( NEVER(pMem->z==0) ) return; if( pMem->flags & MEM_Dyn ){ |