|
From a581cf03110f13c61faeaf87efa5b4e2777087d0 Mon Sep 17 00:00:00 2001
|
|
From: Willy Tarreau <w@1wt.eu>
|
|
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
|
|
|