17905:  open("./bincimap-scan-lock", O_WRONLY|O_CREAT|O_EXCL,
017777763300) Err#13 EACCES

mode must be specified when O_CREAT is in the flags, and is ignored otherwise.

So, now that I'm a bit more awake.


It seems that binc is doing an open() with O_CREAT set, and without a mode specified. O_CREAT requires a mode; its behavior without one set is indeterminate (and particularly broken on NFS). I believe my patch is correct.

--- ./bincimap-1.2.3/src/maildir-scan.cc 2003-09-18 01:25:28.000000000 -0400
+++ ./bincimap-1.2.3-jp/src/maildir-scan.cc 2004-01-06 04:07:09.121007000 -0500
@@ -64,7 +64,7 @@


int lockfd = -1;
while ((lockfd = ::open(lock.c_str(),
- O_CREAT | O_WRONLY | O_EXCL)) == -1) {
+ O_CREAT | O_WRONLY | O_EXCL, 0600)) == -1) {
if (errno != EEXIST) {
logger << "Unable to aquire mailbox scan lock " << lock
<< ", " << string(strerror(errno)) << endl;



Thoughts?


- Jason Parsons

--

Saffron Solutions, LLC  <http://www.saffron.net>  
        System, Network, and Security Consulting
        E-Commerce, Web Site, and E-Mail Hosting



Reply via email to