From 4aef70174bdefd062f5fc8ddab227318818858ff Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 18 May 2011 03:02:10 +0000 Subject: [PATCH] Make sure the multiplexor shim uses a full pathname for temp file that it creates. FossilOrigin-Name: 186d7ff1d9804d508e472e4939608bf2be67bdc2 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/test_multiplex.c | 7 ++++++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index c9ce396096..f7a02d4dc5 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\sunreachable\sbranches\sfrom\sthe\s8.3\sfilename\slogic. -D 2011-05-18T02:41:10.584 +C Make\ssure\sthe\smultiplexor\sshim\suses\sa\sfull\spathname\sfor\stemp\sfile\sthat\sit\ncreates. +D 2011-05-18T03:02:10.059 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 11dcc00a8d0e5202def00e81732784fb0cc4fe1d F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -211,7 +211,7 @@ F src/test_intarray.h 489edb9068bb926583445cb02589344961054207 F src/test_journal.c 785edd54f963aefb3c1628124170a56697c68c70 F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e F src/test_malloc.c 7ca7be34e0e09ef0ed6619544552ed95732e41f6 -F src/test_multiplex.c c71f0a0cdf2b89a441e0bcefb2fcdf1dd358a820 +F src/test_multiplex.c 8e67617b80b532315293761970589581745a52a0 F src/test_multiplex.h e99c571bc4968b7a9363b661481f3934bfead61d F src/test_mutex.c a6bd7b9cf6e19d989e31392b06ac8d189f0d573e F src/test_onefile.c 40cf9e212a377a6511469384a64b01e6e34b2eec @@ -937,7 +937,7 @@ F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/split-sqlite3c.tcl d9be87f1c340285a3e081eb19b4a247981ed290c F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P a074986045f1a81fb831ffee4a29af13c978b053 -R b1e893cccba0a3222ced9d709bda7393 +P 4f7e7b44f2d17681318a1fd22466d3cc03103fc4 +R d6d83dacd40319cfb494e08bc967aebf U drh -Z 511f68817ff94b8f1f3a0e7f5adbf2b3 +Z e159c1e62c6ced1398d519693948ac08 diff --git a/manifest.uuid b/manifest.uuid index 125c6a81c5..89d525c9c0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -4f7e7b44f2d17681318a1fd22466d3cc03103fc4 \ No newline at end of file +186d7ff1d9804d508e472e4939608bf2be67bdc2 \ No newline at end of file diff --git a/src/test_multiplex.c b/src/test_multiplex.c index 861e68e877..32e63ae889 100644 --- a/src/test_multiplex.c +++ b/src/test_multiplex.c @@ -218,14 +218,19 @@ static int multiplexGetTempname(sqlite3_vfs *pOrigVfs, int nBuf, char *zBuf){ ** pVfs->mxPathname characters. */ if( pOrigVfs->mxPathname <= nBuf ){ + char *zTmp = sqlite3_malloc(pOrigVfs->mxPathname); + if( zTmp==0 ) return SQLITE_NOMEM; /* sqlite3_temp_directory should always be less than ** pVfs->mxPathname characters. */ sqlite3_snprintf(pOrigVfs->mxPathname, - zBuf, + zTmp, "%s/", sqlite3_temp_directory ? sqlite3_temp_directory : "."); + rc = pOrigVfs->xFullPathname(pOrigVfs, zTmp, nBuf, zBuf); + sqlite3_free(zTmp); + if( rc ) return rc; /* Check that the output buffer is large enough for the temporary file ** name.