Debug: handle exact-fill of pretrigger buffer
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 5 Feb 2022 22:32:12 +0000 (22:32 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 5 Feb 2022 22:32:12 +0000 (22:32 +0000)
src/src/debug.c
test/confs/0630
test/log/0630
test/paniclog/0630
test/stderr/0630

index 7b9be057bb08145e703f722990791fe70d5558cd..f711462204d2e78c511eb6e433566d3a15867f29 100644 (file)
@@ -322,7 +322,7 @@ if (debug_ptr[-1] == '\n')
 
   if (debug_pretrigger_buf)
     {
-    int needed = Ustrlen(debug_buffer), avail;
+    int needed = Ustrlen(debug_buffer)+1, avail;
     char c;
 
     if (needed > debug_pretrigger_bsize)
@@ -343,6 +343,7 @@ if (debug_ptr[-1] == '\n')
        }
       while (c && c != '\n' && pretrigger_readoff != pretrigger_writeoff);
 
+    needed--;
     for (int i = 0; needed; i++, needed--)
       {
       debug_pretrigger_buf[pretrigger_writeoff] = debug_buffer[i];
index b83790f19147e06f67ca8413ed178a07bdcd32e0..d641967bf3bdf65e3aaf17ed5f4efd4ab50c45f0 100644 (file)
@@ -14,7 +14,7 @@ acl_smtp_rcpt = chk_rcpt
 begin acl
 
 chk_mail:
-  accept control =             debug/tag=_router/opts=+all/pretrigger=2040/trigger=paniclog
+  accept control =             debug/tag=_router/opts=+all/pretrigger=800/trigger=paniclog
 
 chk_rcpt:
   accept
@@ -25,8 +25,9 @@ begin routers
 
 r0:
        # cause paniclog write (by using a tainted filename)
+       # keep the path non-variable
        driver =        redirect
-       local_parts =   $spool_directory/$local_part
+       local_parts =   /$local_part
        data =          :blackhole:
 #
 # End
index 86dfe447e96ca7604d60c6d6b18ae632324d737e..82a6c823b8c842e6e76ad9b965b8e3afaa279ca7 100644 (file)
@@ -2,5 +2,5 @@
 ******** SERVER ********
 1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port PORT_D
 1999-03-02 09:44:33 10HmaX-0005vi-00 <= test_3@paniclogrouter H=(test.ex) [127.0.0.1] P=esmtp S=sss
-1999-03-02 09:44:33 10HmaX-0005vi-00 Tainted filename 'TESTSUITE/spool/dest3'
-1999-03-02 09:44:33 10HmaX-0005vi-00 failed to open TESTSUITE/spool/dest3 when checking "$spool_directory/$local_part": Permission denied (euid=uuuu egid=EXIM_GID)
+1999-03-02 09:44:33 10HmaX-0005vi-00 Tainted filename '/dest3'
+1999-03-02 09:44:33 10HmaX-0005vi-00 failed to open /dest3 when checking "/$local_part": Permission denied (euid=uuuu egid=EXIM_GID)
index 6e72b86ed220bd17a9a2c8d132ec45c9fd2ee0bb..65080a7f66c63358e0338c045d64e3e2d70b79fd 100644 (file)
@@ -1,4 +1,4 @@
 
 ******** SERVER ********
-1999-03-02 09:44:33 10HmaX-0005vi-00 Tainted filename 'TESTSUITE/spool/dest3'
-1999-03-02 09:44:33 10HmaX-0005vi-00 failed to open TESTSUITE/spool/dest3 when checking "$spool_directory/$local_part": Permission denied (euid=uuuu egid=EXIM_GID)
+1999-03-02 09:44:33 10HmaX-0005vi-00 Tainted filename '/dest3'
+1999-03-02 09:44:33 10HmaX-0005vi-00 failed to open /dest3 when checking "/$local_part": Permission denied (euid=uuuu egid=EXIM_GID)
index 271f4499b5e2f160e5a65928a6700c1e1f5fc052..0aaf71ac8752742c7bbfc49589c33e1ead68f7d1 100644 (file)
@@ -1,23 +1,3 @@
-01:01:01 1234 reading spool file 10HmaX-0005vi-00-H
-01:01:01 1234 user=EXIMUSER uid=EXIM_UID gid=EXIM_GID sender=test_3@paniclogrouter
-01:01:01 1234 sender_fullhost = (test.ex) [127.0.0.1]
-01:01:01 1234 sender_rcvhost = [127.0.0.1] (helo=test.ex)
-01:01:01 1234 sender_local=0 ident=unset
-01:01:01 1234 Non-recipients:
-01:01:01 1234  Empty Tree
-01:01:01 1234 ---- End of tree ----
-01:01:01 1234 recipients_count=1
-01:01:01 1234 **** SPOOL_IN - No additional fields
-01:01:01 1234 body_linecount=0 message_linecount=6
-01:01:01 1234 DSN: set orcpt:   flags: 0x0
-01:01:01 1234 Delivery address list:
-01:01:01 1234   dest3@test.ex 
-01:01:01 1234  locking TESTSUITE/spool/db/retry.lockfile
-01:01:01 1234  locked  TESTSUITE/spool/db/retry.lockfile
-01:01:01 1234  EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
-01:01:01 1234  returned from EXIM_DBOPEN: (nil)
-01:01:01 1234  failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
-01:01:01 1234 no retry data available
 01:01:01 1234 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 01:01:01 1234 Considering: dest3@test.ex
 01:01:01 1234 unique = dest3@test.ex
 01:01:01 1234 --------> r0 router <--------
 01:01:01 1234 local_part=dest3 domain=test.ex
 01:01:01 1234 checking local_parts
-01:01:01 1234  ╭considering: $spool_directory/$local_part
-01:01:01 1234  ├considering: /$local_part
+01:01:01 1234  ╭considering: /$local_part
 01:01:01 1234  ├───────text: /
 01:01:01 1234  ├considering: $local_part
-01:01:01 1234  ├──expanding: $spool_directory/$local_part
-01:01:01 1234  ╰─────result: TESTSUITE/spool/dest3
+01:01:01 1234  ├──expanding: /$local_part
+01:01:01 1234  ╰─────result: /dest3
 01:01:01 1234             ╰──(tainted)
 01:01:01 1234 LOG: MAIN PANIC
-01:01:01 1234   Tainted filename 'TESTSUITE/spool/dest3'
+01:01:01 1234   Tainted filename '/dest3'
 01:01:01 1234 LOG: MAIN PANIC DIE
-01:01:01 1234   failed to open TESTSUITE/spool/dest3 when checking "$spool_directory/$local_part": Permission denied (euid=uuuu egid=EXIM_GID)
+01:01:01 1234   failed to open /dest3 when checking "/$local_part": Permission denied (euid=uuuu egid=EXIM_GID)
 01:01:01 1234 search_tidyup called
 01:01:01 1234 >>>>>>>>>>>>>>>> Exim pid=pppp (daemon-accept-delivery) terminating with rc=1 >>>>>>>>>>>>>>>>