From 4376e752c822444f1a26b5e1e974ddd7104ae15c Mon Sep 17 00:00:00 2001 From: Jiri Pirko Date: Wed, 18 Dec 2013 13:26:49 +0100 Subject: libndp: fix [cppcheck] Undefined behavior: Variable 'buf' is used as parameter and destination in s[n]printf() cppcheck --enable=all --inconclusive --std=posix . ndp_msg_opt_dnssl_domain(): if (dom_len > len) return NULL; if (strlen(buf)) ----> sprintf(buf, "%s.", buf); buf[strlen(buf) + dom_len] = '\0'; memcpy(buf + strlen(buf), ptr, dom_len); So just use strcat instead. Reported-by: Dan Williams Signed-off-by: Jiri Pirko --- libndp/libndp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libndp/libndp.c b/libndp/libndp.c index 0bc3fe3..e510e2e 100644 --- a/libndp/libndp.c +++ b/libndp/libndp.c @@ -1540,7 +1540,7 @@ char *ndp_msg_opt_dnssl_domain(struct ndp_msg *msg, int offset, return NULL; if (strlen(buf)) - sprintf(buf, "%s.", buf); + strcat(buf, "."); buf[strlen(buf) + dom_len] = '\0'; memcpy(buf + strlen(buf), ptr, dom_len); ptr += dom_len; -- cgit v1.2.1