]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change the temporary directory search algorithm on unix so that directories
authordrh <drh@noemail.net>
Thu, 21 Apr 2016 23:37:24 +0000 (23:37 +0000)
committerdrh <drh@noemail.net>
Thu, 21 Apr 2016 23:37:24 +0000 (23:37 +0000)
with only -wx permission are allowed.  And do not allow "." to be returned if
it lacks -wx permission.

FossilOrigin-Name: 67985761aa93fb613b87d340e75371fa55b0f778

manifest
manifest.uuid
src/os_unix.c

index 084953dacb4c777872e9e92b56bcb30a66ed506c..df9a5ec95f3f72e98f0221ef1b20f4529731a89f 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\ssqlite3rbu_vacuum()\sAPI,\sto\screate\san\sRBU\shandle\sthat\scan\sbe\sused\sto\srebuild\sa\sdatabase\sin\sthe\ssame\sway\sas\sthe\sVACUUM\scommand.
-D 2016-04-21T18:13:37.597
+C Change\sthe\stemporary\sdirectory\ssearch\salgorithm\son\sunix\sso\sthat\sdirectories\nwith\sonly\s-wx\spermission\sare\sallowed.\s\sAnd\sdo\snot\sallow\s"."\sto\sbe\sreturned\sif\nit\slacks\s-wx\spermission.
+D 2016-04-21T23:37:24.378
 F Makefile.in eba680121821b8a60940a81454316f47a341487a
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 71b8b16cf9393f68e2e2035486ca104872558836
@@ -361,7 +361,7 @@ F src/os.c 4d83917f072ad958fba9235136fa2ed43df47905
 F src/os.h 8e976e59eb4ca1c0fca6d35ee803e38951cb0343
 F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
 F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
-F src/os_unix.c d0b41a47eb5f0dc00e423a1723aadeab0e78c85f
+F src/os_unix.c c96826e21e897bf9c6ae896be9de8d55d63a4ed5
 F src/os_win.c 1997a873bfc8296a701bd8e2df8c3d5da5afe956
 F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
 F src/pager.c d20fa46d5beda38095be6070dd4c59e502817c72
@@ -1484,8 +1484,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P c4f165c460c4244ed434107feac005efa3c386cf 6e4ac704f51bdd1e0b16814f6a45ab29f26400ee
-R 4089c7bed4eb395c7a148d5eb16b1be4
-T +closed 6e4ac704f51bdd1e0b16814f6a45ab29f26400ee
-U dan
-Z 0e5a7e5d2cf2990714a283851c232d22
+P bd4a6f8313eb71399a7141ebf7f2617d7b1464c3
+R 90c3ca98d0d4d69b4119d1fe5513a916
+U drh
+Z f4304caf089d5c38523c57ca13360c36
index a983c0514a837758ebd67038a60db2fc09cb40e8..65f89ba88bd4746948de5c4b131b6cf9f70997d2 100644 (file)
@@ -1 +1 @@
-bd4a6f8313eb71399a7141ebf7f2617d7b1464c3
\ No newline at end of file
+67985761aa93fb613b87d340e75371fa55b0f778
\ No newline at end of file
index aa86f00d70dddb634d2b8ebe66d88cbf68d6873c..9a97515fdcf945ab93dcecbeb5e5ab663ca54bf6 100644 (file)
@@ -5420,10 +5420,10 @@ static const char *unixTempFileDir(void){
     if( zDir==0 ) continue;
     if( osStat(zDir, &buf) ) continue;
     if( !S_ISDIR(buf.st_mode) ) continue;
-    if( osAccess(zDir, 07) ) continue;
-    break;
+    if( osAccess(zDir, 03) ) continue;
+    return zDir;
   }
-  return zDir;
+  return 0;
 }
 
 /*
@@ -5439,9 +5439,11 @@ static int unixGetTempname(int nBuf, char *zBuf){
   ** using the io-error infrastructure to test that SQLite handles this
   ** function failing. 
   */
+  zBuf[0] = 0;
   SimulateIOError( return SQLITE_IOERR );
 
   zDir = unixTempFileDir();
+  if( zDir==0 ) return SQLITE_IOERR_GETTEMPPATH;
   do{
     u64 r;
     sqlite3_randomness(sizeof(r), &r);