-C Additional\schecks\sfor\sOOM\sconditions.
-D 2025-11-20T02:03:57.963
+C Use\ssqlite3MPrintf()\sinstead\sof\ssqlite3_mprintf()\sinternally\sin\salter.c,\nfor\simproved\sOOM\sreporting.
+D 2025-11-20T11:06:58.496
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
F sqlite3.1 1b9c24374a85dfc7eb8fa7c4266ee0db4f9609cceecfc5481cd8307e5af04366
F sqlite3.pc.in e6dee284fba59ef500092fdc1843df3be8433323a3733c91da96690a50a5b398
-F src/alter.c d7151775cf5d32d0eef917f5058791c571417fd2852f4ad4e7a29748098c6503
+F src/alter.c f31437552c733957f19351cdfae8fad8e8f0c7d11041e5b7966aae57206ad91f
F src/analyze.c 03bcfc083fc0cccaa9ded93604e1d4244ea245c17285d463ef6a60425fcb247d
F src/attach.c 9af61b63b10ee702b1594ecd24fb8cea0839cfdb6addee52fba26fa879f5db9d
F src/auth.c 54ab9c6c5803b47c0d45b76ce27eff22a03b4b1f767c5945a3a4eb13aa4c78dc
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P df2259a32fd65986eafceb2c551e6e1661927f1f5b18dbb97c59d9627279eea0
-R f7bd098503221c71a258f97d8f310236
+P 8fafd4988bf1fa1aa799c2834dd31bebdd52e7ae8e68c0197ccb497eb9b1e5f6
+R db1904a60d74ce682aea26b215aeb826
U drh
-Z 20fc64fb6a35782adf034c6413836124
+Z f97a43221f64e29debc08ffbb7442414
# Remove this line to create a well-formed Fossil manifest.
int iEnd = 0;
char *zNew = 0;
int t = 0;
+ sqlite3 *db;
UNUSED_PARAMETER(NotUsed);
if( zSql==0 ) return;
if( zSql[iStart-1]==',' ) iStart--;
}
- zNew = sqlite3_mprintf("%.*s%s%s", iStart, zSql, zSpace, &zSql[iEnd]);
- if( zNew==0 ){
- sqlite3_result_error_nomem(ctx);
- }else{
- sqlite3_result_text(ctx, zNew, -1, SQLITE_TRANSIENT);
- sqlite3_free(zNew);
- }
+ db = sqlite3_context_db_handle(ctx);
+ zNew = sqlite3MPrintf(db, "%.*s%s%s", iStart, zSql, zSpace, &zSql[iEnd]);
+ sqlite3_result_text(ctx, zNew, -1, SQLITE_DYNAMIC);
}
}
int ii;
char *zNew = 0;
int t = 0;
+ sqlite3 *db;
UNUSED_PARAMETER(NotUsed);
if( skipCreateTable(ctx, zSql, &iOff) ) return;
iOff += getWhitespace(&zSql[iOff]);
+ db = sqlite3_context_db_handle(ctx);
if( iCol<0 ){
- zNew = sqlite3_mprintf("%.*s, %s%s", iOff, zSql, zCons, &zSql[iOff]);
- }else{
- zNew = sqlite3_mprintf("%.*s %s%s", iOff, zSql, zCons, &zSql[iOff]);
- }
-
- if( zNew==0 ){
- sqlite3_result_error_nomem(ctx);
+ zNew = sqlite3MPrintf(db, "%.*s, %s%s", iOff, zSql, zCons, &zSql[iOff]);
}else{
- sqlite3_result_text(ctx, zNew, -1, SQLITE_TRANSIENT);
- sqlite3_free(zNew);
+ zNew = sqlite3MPrintf(db, "%.*s %s%s", iOff, zSql, zCons, &zSql[iOff]);
}
+ sqlite3_result_text(ctx, zNew, -1, SQLITE_DYNAMIC);
}
/*
const char *pCons, /* Buffer containing constraint */
int nCons /* Size of pCons in bytes */
){
- u8 *zTmp = (u8*)sqlite3_mprintf("%.*s", nCons, pCons);
+ u8 *zTmp = (u8*)sqlite3MPrintf(db, "%.*s", nCons, pCons);
int iOff = 0;
int iEnd = 0;
- if( zTmp==0 ){
- sqlite3OomFault(db);
- return 0;
- }
+ if( zTmp==0 ) return 0;
while( 1 ){
int t = 0;
iOff += nToken;
}
- sqlite3_free(zTmp);
+ sqlite3DbFree(db, zTmp);
return iEnd;
}