From: drh Date: Fri, 16 Dec 2011 05:09:46 +0000 (+0000) Subject: Fix a potential infinite loop (inserted by the previous check-in) X-Git-Tag: mountain-lion~8^2~37^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=06999667980faaf686d7232e7d97bf1cf4907849;p=thirdparty%2Fsqlite.git Fix a potential infinite loop (inserted by the previous check-in) on the multiplexWrite() method of the multiplexor. FossilOrigin-Name: 022bf427c2edfe494ec7c222f436953ff56574a6 --- diff --git a/manifest b/manifest index a12b10d33a..88df5c4fc4 100644 --- a/manifest +++ b/manifest @@ -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 diff --git a/manifest.uuid b/manifest.uuid index 4852f04967..8cbc3f560c 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -5aefef04d6cc3b734c3f05e036b3869a52248f4d \ No newline at end of file +022bf427c2edfe494ec7c222f436953ff56574a6 \ No newline at end of file diff --git a/src/test_multiplex.c b/src/test_multiplex.c index f01a7f585b..47d553cc27 100644 --- a/src/test_multiplex.c +++ b/src/test_multiplex.c @@ -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;