Back-mdb needs this test, copied from libmdb, to make use of the
libmdb support for read-only filesystems.

I don't know if Windows sets errno=EROFS for fopen(fname, "w") when
fname is on a read-only FS, if so the #ifndef _WIN32 is unnecessary.

--- servers/slapd/back-mdb/config.c
+++ servers/slapd/back-mdb/config.c
@@ -561,3 +561,8 @@ mdb_cf_gen( ConfigArgs *c )
          ch_free( testpath );
-                  if ( !f ) {
+#ifndef _WIN32
+               if ( !(f || ((slapMode & SLAP_TOOL_READONLY) && errno == 
EROFS)) )
+#else
+               if ( !(f || ((slapMode & SLAP_TOOL_READONLY) && GetLastError() 
== ERROR_WRITE_PROTECT)) )
+#endif
+               {
                                snprintf( c->cr_msg, sizeof( c->cr_msg ), "%s: 
invalid path: %s",

-- 
Hallvard

Reply via email to