Compiler-quietening
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 10 Feb 2018 20:06:08 +0000 (20:06 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 10 Feb 2018 20:06:08 +0000 (20:06 +0000)
src/src/exim.c
src/src/macro.c

index 3f1e153fd7e94aafecbdafe77ce79b3a9cbe0130..38e1a56b6494a09c0ef3b162222ff4932ee88340 100644 (file)
@@ -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
index 82c1ec717bf511cfebf6c7c3c7a8ece83fd4b1ec..56a70880cb132aa2fb9a813687db0aa803915599 100644 (file)
@@ -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);