mirror of
https://github.com/sqlite/sqlite.git
synced 2025-10-31 18:11:01 +03:00
Ensure that the master-journal name is in a form suitable to be passed
into sqlite3_uri_parameter(). FossilOrigin-Name: d1ba026d882f070b351280028e2fa88a3cca59b46d4683302e24c6677e0951b9
This commit is contained in:
@@ -2751,8 +2751,9 @@ static int vdbeCommit(sqlite3 *db, Vdbe *p){
|
||||
|
||||
/* Select a master journal file name */
|
||||
nMainFile = sqlite3Strlen30(zMainFile);
|
||||
zMaster = sqlite3MPrintf(db, "%s-mjXXXXXX9XXz%c%c", zMainFile, 0, 0);
|
||||
zMaster = sqlite3MPrintf(db, "%.4c%s%.16c", 0,zMainFile,0);
|
||||
if( zMaster==0 ) return SQLITE_NOMEM_BKPT;
|
||||
zMaster += 4;
|
||||
do {
|
||||
u32 iRandom;
|
||||
if( retryCount ){
|
||||
@@ -2782,7 +2783,7 @@ static int vdbeCommit(sqlite3 *db, Vdbe *p){
|
||||
);
|
||||
}
|
||||
if( rc!=SQLITE_OK ){
|
||||
sqlite3DbFree(db, zMaster);
|
||||
sqlite3DbFree(db, zMaster-4);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -2805,7 +2806,7 @@ static int vdbeCommit(sqlite3 *db, Vdbe *p){
|
||||
if( rc!=SQLITE_OK ){
|
||||
sqlite3OsCloseFree(pMaster);
|
||||
sqlite3OsDelete(pVfs, zMaster, 0);
|
||||
sqlite3DbFree(db, zMaster);
|
||||
sqlite3DbFree(db, zMaster-4);
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
@@ -2819,7 +2820,7 @@ static int vdbeCommit(sqlite3 *db, Vdbe *p){
|
||||
){
|
||||
sqlite3OsCloseFree(pMaster);
|
||||
sqlite3OsDelete(pVfs, zMaster, 0);
|
||||
sqlite3DbFree(db, zMaster);
|
||||
sqlite3DbFree(db, zMaster-4);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -2842,7 +2843,7 @@ static int vdbeCommit(sqlite3 *db, Vdbe *p){
|
||||
sqlite3OsCloseFree(pMaster);
|
||||
assert( rc!=SQLITE_BUSY );
|
||||
if( rc!=SQLITE_OK ){
|
||||
sqlite3DbFree(db, zMaster);
|
||||
sqlite3DbFree(db, zMaster-4);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -2851,7 +2852,7 @@ static int vdbeCommit(sqlite3 *db, Vdbe *p){
|
||||
** transaction files are deleted.
|
||||
*/
|
||||
rc = sqlite3OsDelete(pVfs, zMaster, 1);
|
||||
sqlite3DbFree(db, zMaster);
|
||||
sqlite3DbFree(db, zMaster-4);
|
||||
zMaster = 0;
|
||||
if( rc ){
|
||||
return rc;
|
||||
|
||||
Reference in New Issue
Block a user