From 38e3d2dff7982736f1e6833e06d4aab4652f337a Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sat, 10 Feb 2018 20:06:08 +0000 Subject: [PATCH] Compiler-quietening --- src/src/exim.c | 2 +- src/src/macro.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/src/exim.c b/src/src/exim.c index 3f1e153fd..38e1a56b6 100644 --- a/src/src/exim.c +++ b/src/src/exim.c @@ -1432,7 +1432,7 @@ if (isupper(big_buffer[0])) if (macro_read_assignment(big_buffer)) { uschar * s = Ustrchr(big_buffer, '='); - printf("Defined macro '%.*s'\n", s - big_buffer, big_buffer); + printf("Defined macro '%.*s'\n", (int)(s - big_buffer), big_buffer); } } else diff --git a/src/src/macro.c b/src/src/macro.c index 82c1ec717..56a70880c 100644 --- a/src/src/macro.c +++ b/src/src/macro.c @@ -40,7 +40,11 @@ m->namelen = namelen; m->replen = Ustrlen(val); m->m_number = m_number++; memset(&m->tnode, 0, sizeof(tree_node)); -Ustrcpy(m->tnode.name, name); +/* Use memcpy here not Ustrcpy to avoid spurious compiler-inserted check +when building with fortify-source. We know there is room for the copy into +this dummy for a variable-size array because of the way we did the memory +allocation above. */ +memcpy(m->tnode.name, name, namelen+1); m->tnode.data.ptr = string_copyn(val, m->replen); (void) tree_insertnode(&tree_macros, &m->tnode); -- 2.30.2