Utilites: fix exim_lock
authorJeremy Harris <jgh146exb@wizmail.org>
Tue, 15 Mar 2016 19:16:14 +0000 (19:16 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Tue, 15 Mar 2016 19:19:14 +0000 (19:19 +0000)
Unaccountable fails to lock, seen in testsuite
Fix appeared when tidying a Coverity "unchecked returncode" fault

src/src/exim_lock.c
test/confs/0137
test/log/0137
test/mail/0137.userx
test/scripts/0000-Basic/0137

index 37d9744771217b245aaf386faf3d337524984c08..4b2209b05d5d7f6ad020d71b186e49a7663d543d 100644 (file)
@@ -216,7 +216,7 @@ for (i = 1; i < argc; i++)
   else usage();
   }
 
   else usage();
   }
 
-if (quiet) verbose = 0;
+if (quiet) verbose = FALSE;
 
 /* Can't use flock() if the OS doesn't provide it */
 
 
 /* Can't use flock() if the OS doesn't provide it */
 
@@ -322,7 +322,7 @@ for (j = 0; j < lock_retries; j++)
 
   if (use_lockfile)
     {
 
   if (use_lockfile)
     {
-    int rc;
+    int rc, rc2;
     if (verbose) printf("exim_lock: creating lock file\n");
     hd = open(hitchname, O_WRONLY | O_CREAT | O_EXCL, 0440);
     if (hd < 0)
     if (verbose) printf("exim_lock: creating lock file\n");
     hd = open(hitchname, O_WRONLY | O_CREAT | O_EXCL, 0440);
     if (hd < 0)
@@ -334,11 +334,12 @@ for (j = 0; j < lock_retries; j++)
 
     /* Apply hitching post algorithm. */
 
 
     /* Apply hitching post algorithm. */
 
-    if ((rc = link(hitchname, lockname)) != 0) fstat(hd, &statbuf);
+    if ((rc = link(hitchname, lockname)) != 0)
+     rc2 = fstat(hd, &statbuf);
     (void)close(hd);
     unlink(hitchname);
 
     (void)close(hd);
     unlink(hitchname);
 
-    if (rc != 0 && statbuf.st_nlink != 2)
+    if (rc != 0 && (rc2 != 0 || statbuf.st_nlink != 2))
       {
       printf("exim_lock: failed to link hitching post to lock file\n");
       hd = -1;
       {
       printf("exim_lock: failed to link hitching post to lock file\n");
       hd = -1;
index b40c83c155803e09d0ad5b909be1c13f4cd0c428..b36a701c2dd93910b2c01c83581112137bc76d0e 100644 (file)
@@ -11,6 +11,7 @@ tls_advertise_hosts =
 
 # ----- Main settings -----
 
 
 # ----- Main settings -----
 
+log_selector = +subject
 domainlist local_domains = test.ex
 qualify_domain = test.ex
 
 domainlist local_domains = test.ex
 qualify_domain = test.ex
 
index f963fb2169d504c2ce263be0b7374e019a4fa833..30ee4cdd5e1ec41e9b7f0203d7dc5e63813b5a74 100644 (file)
@@ -1,19 +1,19 @@
-1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss T="First"
 1999-03-02 09:44:33 10HmaX-0005vi-00 => userx <userx@test.ex> R=smart T=local_delivery
 1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
 1999-03-02 09:44:33 10HmaX-0005vi-00 => userx <userx@test.ex> R=smart T=local_delivery
 1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
-1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss T="Second"
 1999-03-02 09:44:33 10HmaY-0005vi-00 == userx@test.ex R=smart T=local_delivery defer (-9): failed to lock mailbox TESTSUITE/test-mail/userx (lock file)
 1999-03-02 09:44:33 Start queue run: pid=pppp -qf
 1999-03-02 09:44:33 10HmaY-0005vi-00 => userx <userx@test.ex> R=smart T=local_delivery
 1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
 1999-03-02 09:44:33 End queue run: pid=pppp -qf
 1999-03-02 09:44:33 10HmaY-0005vi-00 == userx@test.ex R=smart T=local_delivery defer (-9): failed to lock mailbox TESTSUITE/test-mail/userx (lock file)
 1999-03-02 09:44:33 Start queue run: pid=pppp -qf
 1999-03-02 09:44:33 10HmaY-0005vi-00 => userx <userx@test.ex> R=smart T=local_delivery
 1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
 1999-03-02 09:44:33 End queue run: pid=pppp -qf
-1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss T="Third"
 1999-03-02 09:44:33 10HmaZ-0005vi-00 == userx@test.ex R=smart T=local_delivery_fcntl defer (-9): failed to lock mailbox TESTSUITE/test-mail/userx (fcntl/flock)
 1999-03-02 09:44:33 Start queue run: pid=pppp -qf
 1999-03-02 09:44:33 10HmaZ-0005vi-00 => userx <userx@test.ex> R=smart T=local_delivery_fcntl
 1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed
 1999-03-02 09:44:33 End queue run: pid=pppp -qf
 1999-03-02 09:44:33 10HmaZ-0005vi-00 == userx@test.ex R=smart T=local_delivery_fcntl defer (-9): failed to lock mailbox TESTSUITE/test-mail/userx (fcntl/flock)
 1999-03-02 09:44:33 Start queue run: pid=pppp -qf
 1999-03-02 09:44:33 10HmaZ-0005vi-00 => userx <userx@test.ex> R=smart T=local_delivery_fcntl
 1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed
 1999-03-02 09:44:33 End queue run: pid=pppp -qf
-1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss T="Fourth"
 1999-03-02 09:44:33 10HmbA-0005vi-00 == userx@test.ex R=smart T=local_delivery_fcntl_blocking defer (-9): failed to lock mailbox TESTSUITE/test-mail/userx (fcntl/flock)
 1999-03-02 09:44:33 Start queue run: pid=pppp -qf
 1999-03-02 09:44:33 10HmbA-0005vi-00 => userx <userx@test.ex> R=smart T=local_delivery_fcntl_blocking
 1999-03-02 09:44:33 10HmbA-0005vi-00 == userx@test.ex R=smart T=local_delivery_fcntl_blocking defer (-9): failed to lock mailbox TESTSUITE/test-mail/userx (fcntl/flock)
 1999-03-02 09:44:33 Start queue run: pid=pppp -qf
 1999-03-02 09:44:33 10HmbA-0005vi-00 => userx <userx@test.ex> R=smart T=local_delivery_fcntl_blocking
index 7dd068d1071e9275b01d3addae5cf13122dea06a..c4469825411d68c693957bb83ef74e3e19add8c2 100644 (file)
@@ -3,6 +3,7 @@ Received: from CALLER by the.local.host.name with local (Exim x.yz)
        (envelope-from <CALLER@test.ex>)
        id 10HmaX-0005vi-00
        for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
        (envelope-from <CALLER@test.ex>)
        id 10HmaX-0005vi-00
        for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Subject: First
 Transport: local_delivery
 Message-Id: <E10HmaX-0005vi-00@the.local.host.name>
 From: CALLER_NAME <CALLER@test.ex>
 Transport: local_delivery
 Message-Id: <E10HmaX-0005vi-00@the.local.host.name>
 From: CALLER_NAME <CALLER@test.ex>
@@ -15,6 +16,7 @@ Received: from CALLER by the.local.host.name with local (Exim x.yz)
        (envelope-from <CALLER@test.ex>)
        id 10HmaY-0005vi-00
        for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
        (envelope-from <CALLER@test.ex>)
        id 10HmaY-0005vi-00
        for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Subject: Second
 Transport: local_delivery
 Message-Id: <E10HmaY-0005vi-00@the.local.host.name>
 From: CALLER_NAME <CALLER@test.ex>
 Transport: local_delivery
 Message-Id: <E10HmaY-0005vi-00@the.local.host.name>
 From: CALLER_NAME <CALLER@test.ex>
@@ -27,6 +29,7 @@ Received: from CALLER by the.local.host.name with local (Exim x.yz)
        (envelope-from <CALLER@test.ex>)
        id 10HmaZ-0005vi-00
        for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
        (envelope-from <CALLER@test.ex>)
        id 10HmaZ-0005vi-00
        for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Subject: Third
 Transport: local_delivery_fcntl
 Message-Id: <E10HmaZ-0005vi-00@the.local.host.name>
 From: CALLER_NAME <CALLER@test.ex>
 Transport: local_delivery_fcntl
 Message-Id: <E10HmaZ-0005vi-00@the.local.host.name>
 From: CALLER_NAME <CALLER@test.ex>
@@ -39,6 +42,7 @@ Received: from CALLER by the.local.host.name with local (Exim x.yz)
        (envelope-from <CALLER@test.ex>)
        id 10HmbA-0005vi-00
        for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
        (envelope-from <CALLER@test.ex>)
        id 10HmbA-0005vi-00
        for userx@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Subject: Fourth
 Transport: local_delivery_fcntl_blocking
 Message-Id: <E10HmbA-0005vi-00@the.local.host.name>
 From: CALLER_NAME <CALLER@test.ex>
 Transport: local_delivery_fcntl_blocking
 Message-Id: <E10HmbA-0005vi-00@the.local.host.name>
 From: CALLER_NAME <CALLER@test.ex>
index 0335afe57be84cefe35eec3e9fecb1ce3708c0b1..56941941f4e86b62f7a13fd95bbf54f68a6837e6 100644 (file)
@@ -1,10 +1,12 @@
 # mailbox locking
 exim -odi userx
 # mailbox locking
 exim -odi userx
+Subject: First
 Transport: local_delivery
 First message.
 ****
 exim_lock -v test-mail/userx
 exim -odi userx
 Transport: local_delivery
 First message.
 ****
 exim_lock -v test-mail/userx
 exim -odi userx
+Subject: Second
 Transport: local_delivery
 Second message
 ****
 Transport: local_delivery
 Second message
 ****
@@ -12,6 +14,7 @@ exim -qf
 ****
 exim_lock -v -fcntl test-mail/userx
 exim -odi userx
 ****
 exim_lock -v -fcntl test-mail/userx
 exim -odi userx
+Subject: Third
 Transport: local_delivery_fcntl
 Third message
 ****
 Transport: local_delivery_fcntl
 Third message
 ****
@@ -19,6 +22,7 @@ exim -qf
 ****
 exim_lock -v -fcntl test-mail/userx
 exim -odi userx
 ****
 exim_lock -v -fcntl test-mail/userx
 exim -odi userx
+Subject: Fourth
 Transport: local_delivery_fcntl_blocking
 Fourth message
 ****
 Transport: local_delivery_fcntl_blocking
 Fourth message
 ****