-C Merge\slatest\strunk\schanges\swith\sthis\sbranch.
-D 2017-06-27T16:48:08.459
+C Avoid\seven\strying\sto\sopen\sa\sSHM\sfile\sread/write\sin\sWAL\smode\sif\swe\sknow\sthat\nthe\sfile\sis\sread-only.\s\sThis\savoids\sscare\ssecurity\slog\smessages.
+D 2017-07-07T20:33:36.184
F Makefile.in 227347646e289e3b016ebb7a391ad6ed4ab56525834d56d47d1a83b8d97d6989
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc fb28c0304f8a14c5ce7d4bde9fea1c903f644b49e78ebd9976ab2a1f0eb8afb5
F src/os.h 8e976e59eb4ca1c0fca6d35ee803e38951cb0343
F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
-F src/os_unix.c 4a58dfdfda7e72aab0e393953890a9b6d40a7ff4
+F src/os_unix.c 4193a7dca757d090f566edb733e012af939b5f8cbf4da6d574121ff55dcc67c7
F src/os_win.c 85b19486054c8cd5c4117dea882d983ea065d16e
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
F src/pager.c 6140d3ccfba4ce89d5a9f113d32bd0554bd4ab8c476bf5cf6651f9060f6bfb1d
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 53b14a388838439087f92282bdaa3f706e9e197a7ed93f8c73e8844cffca8126 87b381663398f029f52cb5598aadd069b03034b6f833ce80ba762b406075a44e
-R 6e130e59f6087f79b0c5f510a3cd1fb5
-U dan
-Z 3658eeaa042232e633ca1fa776f1869a
+P 2b0954060fe10d6de6d479287dd88890f1bef6cc1beca11bc6cdb79f72e2377b
+R ee7bac678e139337809f17f1857c6b7a
+U drh
+Z b85dcfa1091a029b631421bc18f43c11
if( pInode->bProcessLock==0 ){
int openFlags = O_RDWR | O_CREAT;
int fd; /* File descriptor for *-shm file */
- if( sqlite3_uri_boolean(pDbFd->zPath, "readonly_shm", 0) ){
+ if( sqlite3_uri_boolean(pDbFd->zPath, "readonly_shm", 0)
+#ifdef __APPLE__
+ /* On MacOS and iOS, avoid even trying to open a read-only SHM file
+ ** for writing, because doing so generates scary log messages */
+ || (osAccess(zShmFilename, R_OK|W_OK)!=0
+ && (errno==EPERM || errno==EACCES))
+#endif
+ ){
openFlags = O_RDONLY;
pShmNode->isReadonly = 1;
}
** may be also be used by a read/write database connection. */
#if defined(SQLITE_ENABLE_PERSIST_WAL)&&(SQLITE_ENABLE_LOCKING_STYLE \
|| defined(__APPLE__))
- if( fd<0 && errno!=EISDIR && pShmNode->isReadonly==0
+ if( fd<0 && (errno==EPERM || errno==EACCES) && pShmNode->isReadonly==0
&& (pDbFd->openFlags & O_RDWR)!=O_RDWR
){
fd = robust_open(zShmFilename, O_RDONLY, (sStat.st_mode&0777));