Hi Timo,

today I found this in the logs again:

Jul 29 10:38:27 trevi mail:err|error dovecot: IMAP(beckerr):
 fchown(/u/f0/rzuser/beckerr/Mail/.subscriptions.lock, -1, -1)
 failed: Invalid argument

Jul 29 10:38:27 trevi mail:err|error dovecot: IMAP(beckerr):
 file_dotlock_open() failed with subscription file
 /u/f0/rzuser/beckerr/Mail/.subscriptions: Invalid argument


I located the bug in src/lib/file-dotlock.c ... a patch is attached.


Ralf

Timo Sirainen schrieb am 07.07.2009 18:40:
> On Tue, 2009-07-07 at 17:58 +0200, Axel Luttgens wrote:
>>> Is my understanding of these sentences correct?
>>> "If owner and group are -1, nothing is done?"
>>>
>>> In this case it should be save to skip the call, shouldn't it?
>> Yes, I guess so.
> 
> Yes. Committed: http://hg.dovecot.org/dovecot-1.2/rev/d6337be8ae30
> 
>> Unless the rationale for that call is to ensure a correct cache  
>> flushing for NFS clients, while being some kind of (costly) no-op  
>> otherwise?
> 
> In that case I would have used those nfs_flush_*() functions.
> 

-- 
______________________________________________________________________

 Dipl.-Inform. (FH) Ralf Becker     Rechenzentrum (r/ft) der FH Trier
 (Network|Mail|Web|Firewall)           University of applied sciences
 Administrator                           Schneidershof, D-54293 Trier

   Mail: [email protected]                    Fon: +49 651 8103 499
    Web: http://www.fh-trier.de/~beckerr        Fax: +49 651 8103 214
 PubKey: http://www.fh-trier.de/~beckerr     Crypto: GnuPG, S/MIME
______________________________________________________________________

 Wenn Gott gewollt haette, dass E-Mail in HTML geschrieben wuerden,
 endeten Gebete traditionell mit </amen>. (Tom Listen)
--- dovecot-1.2.2/src/lib/file-dotlock.c.org    2009-07-29 10:44:21.000000000 
+0200
+++ dovecot-1.2.2/src/lib/file-dotlock.c        2009-07-29 10:44:42.000000000 
+0200
@@ -780,7 +780,7 @@
        fd = file_dotlock_open(set, path, flags, &dotlock);
        umask(old_mask);
 
-       if (fd != -1 && (uid != (uid)-1 || gid != (gid_t)-1)) {
+       if (fd != -1 && (uid != (uid_t)-1 || gid != (gid_t)-1)) {
                if (fchown(fd, uid, gid) < 0) {
                        if (errno == EPERM && uid == (uid_t)-1) {
                                i_error("%s", eperm_error_get_chgrp("fchown",

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to