1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00

Limit the length of sqlite3_mprintf() output to 2^30 bytes, even if

SQLITE_MAX_LENGTH is set larger at compile-time.

FossilOrigin-Name: d655a665acfae676d30e90e3731f483bee6acc63
This commit is contained in:
drh
2016-01-04 04:28:11 +00:00
parent 9fbc885afc
commit 6044bf8bf3
3 changed files with 12 additions and 7 deletions

View File

@@ -965,7 +965,12 @@ char *sqlite3_vmprintf(const char *zFormat, va_list ap){
#ifndef SQLITE_OMIT_AUTOINIT
if( sqlite3_initialize() ) return 0;
#endif
#if SQLITE_MAX_LENGTH<0x40000000
sqlite3StrAccumInit(&acc, 0, zBase, sizeof(zBase), SQLITE_MAX_LENGTH);
#else
sqlite3StrAccumInit(&acc, 0, zBase, sizeof(zBase), 0x3fffffff);
#endif
sqlite3VXPrintf(&acc, 0, zFormat, ap);
z = sqlite3StrAccumFinish(&acc);
return z;