diff options
Diffstat (limited to 'src/vdbetrace.c')
-rw-r--r-- | src/vdbetrace.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/vdbetrace.c b/src/vdbetrace.c index d30cf3acd..7b4736399 100644 --- a/src/vdbetrace.c +++ b/src/vdbetrace.c @@ -141,12 +141,10 @@ char *sqlite3VdbeExpandSql( if( enc!=SQLITE_UTF8 ){ memset(&utf8, 0, sizeof(utf8)); utf8.db = db; - if( SQLITE_NOMEM==sqlite3VdbeMemSetStr(&utf8,pVar->z,pVar->n,enc,SQLITE_STATIC) - || SQLITE_NOMEM==sqlite3VdbeChangeEncoding(&utf8, SQLITE_UTF8) - ){ - sqlite3StrAccumReset(&out); - sqlite3VdbeMemRelease(&utf8); - return 0; + sqlite3VdbeMemSetStr(&utf8, pVar->z, pVar->n, enc, SQLITE_STATIC); + if( SQLITE_NOMEM==sqlite3VdbeChangeEncoding(&utf8, SQLITE_UTF8) ){ + out.accError = STRACCUM_NOMEM; + out.nAlloc = 0; } pVar = &utf8; } @@ -189,6 +187,7 @@ char *sqlite3VdbeExpandSql( } } } + if( out.accError ) sqlite3StrAccumReset(&out); return sqlite3StrAccumFinish(&out); } |