]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure the multiplexor shim uses a full pathname for temp file that it
authordrh <drh@noemail.net>
Wed, 18 May 2011 03:02:10 +0000 (03:02 +0000)
committerdrh <drh@noemail.net>
Wed, 18 May 2011 03:02:10 +0000 (03:02 +0000)
creates.

FossilOrigin-Name: 186d7ff1d9804d508e472e4939608bf2be67bdc2

manifest
manifest.uuid
src/test_multiplex.c

index c9ce396096ad105548983e403ace7d6be0863072..f7a02d4dc599cbf5d8f663bcd9f175778f640743 100644 (file)
--- 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
index 125c6a81c5cf03bb89430991b794e01b1ab05bf7..89d525c9c08084ec6c2f18d1aada47e05d4ffafe 100644 (file)
@@ -1 +1 @@
-4f7e7b44f2d17681318a1fd22466d3cc03103fc4
\ No newline at end of file
+186d7ff1d9804d508e472e4939608bf2be67bdc2
\ No newline at end of file
index 861e68e8775d46619be8873b8cfdf68eaf4905a0..32e63ae889ea0ebc8eded072d603d948d08947ed 100644 (file)
@@ -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.