From a581cf03110f13c61faeaf87efa5b4e2777087d0 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 10 Aug 2016 19:29:09 +0200 Subject: [PATCH 20/26] BUILD: checks: remove the last strcat and eliminate a warning on OpenBSD OpenBSD emits warnings on usages of strcpy, strcat and sprintf (and probably a few others). Here we have a single such warning in all the code reintroduced by commit 0ba0e4a ("MEDIUM: Support sending email alerts") in 1.6-dev1. Let's get rid of it, the open-coding of strcat is as small as its usage and the the result is even more efficient. This fix needs to be backported to 1.6. (cherry picked from commit 64345aaaf0dc2739983902cce4667089ad926a49) --- src/checks.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/checks.c b/src/checks.c index 80b2fc3..55c13a9 100644 --- a/src/checks.c +++ b/src/checks.c @@ -3164,6 +3164,8 @@ static int add_tcpcheck_expect_str(struct list *list, const char *str) static int add_tcpcheck_send_strs(struct list *list, const char * const *strs) { struct tcpcheck_rule *tcpcheck; + const char *in; + char *dst; int i; tcpcheck = calloc(1, sizeof *tcpcheck); @@ -3181,10 +3183,11 @@ static int add_tcpcheck_send_strs(struct list *list, const char * const *strs) free(tcpcheck); return 0; } - tcpcheck->string[0] = '\0'; + dst = tcpcheck->string; for (i = 0; strs[i]; i++) - strcat(tcpcheck->string, strs[i]); + for (in = strs[i]; (*dst = *in++); dst++); + *dst = 0; LIST_ADDQ(list, &tcpcheck->list); return 1; -- 2.7.3