Fix bad use of library, copying string over itself
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 20 Oct 2018 20:03:30 +0000 (21:03 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 21 Oct 2018 14:32:49 +0000 (15:32 +0100)
doc/doc-txt/ChangeLog
src/src/deliver.c

index 414dd9810fcdaf3e1df5f7f1998d5b50a332989c..70a496259c37349d147ea8368628660f617fb79c 100644 (file)
@@ -142,6 +142,10 @@ JH/30 Bug 2329: Increase buffer size used for dns lookup from 2k, which was
       the way to the max DNS message size of 64kB, even though this might be
       overmuch for IOT constrained device use.
 
+JH/31 Fix a bad use of a copy function, which could be used to pointlessly
+      copy a string over itself.  The library routine is documented as not
+      supporting overlapping copies, and on MacOS it actually raised a SIGABRT.
+
 
 Exim version 4.91
 -----------------
index 6c6e6f7d12ef8a03dec8e483e9f7aeabc3b8f666..4624719f853ed84c9ae462dddd123bd3fe452c95 100644 (file)
@@ -5586,7 +5586,8 @@ message size. This use of strcpy() is OK because the length id is checked when
 it is obtained from a command line (the -M or -q options), and otherwise it is
 known to be a valid message id. */
 
-Ustrcpy(message_id, id);
+if (id != message_id)
+  Ustrcpy(message_id, id);
 f.deliver_force = forced;
 return_count = 0;
 message_size = 0;