https://bugs.exim.org/show_bug.cgi?id=2603

Git Commit <g...@exim.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |g...@exim.org

--- Comment #4 from Git Commit <g...@exim.org> ---
Git commit:
https://git.exim.org/exim.git/commitdiff/80c2ec2e47c556daff00c79ee068ce68f25fd264

commit 80c2ec2e47c556daff00c79ee068ce68f25fd264
Author:     Jeremy Harris <jgh146...@wizmail.org>
AuthorDate: Sat Jun 20 00:54:05 2020 +0100
Commit:     Jeremy Harris <jgh146...@wizmail.org>
CommitDate: Sat Jun 20 01:05:08 2020 +0100

    Fix string_copy() macro to not multiple-eval args. Bug 2603

    Broken-by: a76d120aed
---
 doc/doc-txt/ChangeLog | 6 ++++++
 src/src/functions.h   | 4 ++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 0354ff2..717e0d2 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -49,6 +49,12 @@ JH/09 Relax restrictions on ACL verify condition needing
access to message
       permit also mime, dkim, prdr quit and notquit.  Applies to
header-syntax,
       not_blind, header_sender and header_names_ascii verification.

+JH/10 Bug 2603: Fix coding of string copying to only evaluate arguments once.
+      Previously a macro used one argument twice; when called with the
+      argument as an expression having side-effects, incorrect operation
+      resulted.  Use an inlineable function.
+
+

 Exim version 4.94
 -----------------
diff --git a/src/src/functions.h b/src/src/functions.h
index 1f0c30d..110d4db 100644
--- a/src/src/functions.h
+++ b/src/src/functions.h
@@ -772,9 +772,9 @@ string_copy_trc(const uschar * s, const char * func, int
line)
 /* Simple string-copy functions maintaining the taint */

 #define string_copyn(s, len) \
-    string_copyn_taint_trc((s), (len), is_tainted(s), __FUNCTION__, __LINE__)
+    string_copyn_trc((s), (len), __FUNCTION__, __LINE__)
 #define string_copy(s) \
-    string_copy_taint_trc((s), is_tainted(s), __FUNCTION__, __LINE__)
+    string_copy_trc((s), __FUNCTION__, __LINE__)


 /*************************************************

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim 
details at http://www.exim.org/ ##

Reply via email to