diff options
author | dan <dan@noemail.net> | 2012-02-28 11:52:12 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2012-02-28 11:52:12 +0000 |
commit | 4aced72a59a8331d5b5e8cfcd1310bead5c40fcd (patch) | |
tree | fa41bcce36a6472d99178bd71d691195ab37774a /src/test_multiplex.c | |
parent | c611ee94bb629d44c2886b4aa2acf3c1d7643186 (diff) | |
download | sqlite-4aced72a59a8331d5b5e8cfcd1310bead5c40fcd.tar.gz sqlite-4aced72a59a8331d5b5e8cfcd1310bead5c40fcd.zip |
Fix a case where an error code was being overwritten in multiplexDelete().
FossilOrigin-Name: c267893a0813beb1764071409025e178318e1ca3
Diffstat (limited to 'src/test_multiplex.c')
-rw-r--r-- | src/test_multiplex.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/test_multiplex.c b/src/test_multiplex.c index 0bdbb0e75..e2b672065 100644 --- a/src/test_multiplex.c +++ b/src/test_multiplex.c @@ -657,14 +657,16 @@ static int multiplexDelete( multiplexFilename(zName, nName, SQLITE_OPEN_MAIN_JOURNAL, --iChunk, z); rc = pOrigVfs->xDelete(pOrigVfs, z, syncDir); } - iChunk = 0; - do{ - multiplexFilename(zName, nName, SQLITE_OPEN_WAL, ++iChunk, z); - rc = pOrigVfs->xAccess(pOrigVfs, z, SQLITE_ACCESS_EXISTS, &bExists); - }while( rc==SQLITE_OK && bExists ); - while( rc==SQLITE_OK && iChunk>1 ){ - multiplexFilename(zName, nName, SQLITE_OPEN_WAL, --iChunk, z); - rc = pOrigVfs->xDelete(pOrigVfs, z, syncDir); + if( rc==SQLITE_OK ){ + iChunk = 0; + do{ + multiplexFilename(zName, nName, SQLITE_OPEN_WAL, ++iChunk, z); + rc = pOrigVfs->xAccess(pOrigVfs, z, SQLITE_ACCESS_EXISTS, &bExists); + }while( rc==SQLITE_OK && bExists ); + while( rc==SQLITE_OK && iChunk>1 ){ + multiplexFilename(zName, nName, SQLITE_OPEN_WAL, --iChunk, z); + rc = pOrigVfs->xDelete(pOrigVfs, z, syncDir); + } } } sqlite3_free(z); |