Fix a potential infinite loop (inserted by the previous check-in)

on the multiplexWrite() method of the multiplexor.

FossilOrigin-Name: 022bf427c2edfe494ec7c222f436953ff56574a6
This commit is contained in:
drh 2011-12-16 05:09:46 +00:00
parent e7d9f13d99
commit 0699966798
3 changed files with 10 additions and 10 deletions

View File

@ -1,5 +1,5 @@
C The\sxTruncate\smethod\sfor\sthe\smultiplexor\snow\schanges\ssurplus\soverflow\nfiles\sto\szero-length\sby\sdefault.\s\sOr\sif\sthe\s"truncate"\squery\sparameter\s\nis\sused,\sit\sactually\sdeletes\sthe\ssurplus\soverflow\sfiles.\s\sThis\sallows\nVACUUM\sto\sshrink\sthe\sdatabase\sagain.
D 2011-12-16T04:57:32.390
C Fix\sa\spotential\sinfinite\sloop\s(inserted\sby\sthe\sprevious\scheck-in)\non\sthe\smultiplexWrite()\smethod\sof\sthe\smultiplexor.
D 2011-12-16T05:09:46.415
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@ -214,7 +214,7 @@ F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
F src/test_journal.c 03313c693cca72959dcaaf79f8d76f21c01e19ff
F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e
F src/test_malloc.c 8d416f29ad8573f32601f6056c9d2b17472e9ad5
F src/test_multiplex.c 993f930c9c8e1aa0f4fe7b5a74c9a60fbf3447e4
F src/test_multiplex.c ccc5f2feae52c4fbef1a88205667a6bcf2078844
F src/test_multiplex.h e99c571bc4968b7a9363b661481f3934bfead61d
F src/test_mutex.c a6bd7b9cf6e19d989e31392b06ac8d189f0d573e
F src/test_onefile.c 40cf9e212a377a6511469384a64b01e6e34b2eec
@ -978,7 +978,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
P e9177f7d4ec19f0841d0613990d2fb5725700ba1
R c09d355f93cdab856d4274295151320d
P 5aefef04d6cc3b734c3f05e036b3869a52248f4d
R 8d7b158bf3a519193898c5ead6ba7790
U drh
Z 4efbc5088c9568c2b7090122e09b39c8
Z d8c8d1df41588adf9be8799f58ddd721

View File

@ -1 +1 @@
5aefef04d6cc3b734c3f05e036b3869a52248f4d
022bf427c2edfe494ec7c222f436953ff56574a6

View File

@ -305,7 +305,7 @@ static sqlite3_file *multiplexSubOpen(
*rc = multiplexSubFilename(pGroup, iChunk);
if( (*rc)==SQLITE_OK && (pSubOpen = pGroup->aReal[iChunk].p)==0 ){
int flags, rc2, bExists;
int flags, bExists;
if( iChunk==0 ) createFlag = (pGroup->flags & SQLITE_OPEN_CREATE)!=0;
flags = pGroup->flags;
if( createFlag ){
@ -324,9 +324,9 @@ static sqlite3_file *multiplexSubOpen(
return 0;
}
pGroup->aReal[iChunk].p = pSubOpen;
rc2 = pOrigVfs->xOpen(pOrigVfs, pGroup->aReal[iChunk].z, pSubOpen,
*rc = pOrigVfs->xOpen(pOrigVfs, pGroup->aReal[iChunk].z, pSubOpen,
flags, pOutFlags);
if( rc2!=SQLITE_OK ){
if( (*rc)!=SQLITE_OK ){
sqlite3_free(pSubOpen);
pGroup->aReal[iChunk].p = 0;
return 0;