aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2012-02-28 11:52:12 +0000
committerdan <dan@noemail.net>2012-02-28 11:52:12 +0000
commit4aced72a59a8331d5b5e8cfcd1310bead5c40fcd (patch)
treefa41bcce36a6472d99178bd71d691195ab37774a /src
parentc611ee94bb629d44c2886b4aa2acf3c1d7643186 (diff)
downloadsqlite-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')
-rw-r--r--src/test_multiplex.c18
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);