summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Pirko <jiri@resnulli.us>2013-12-18 13:26:49 +0100
committerJiri Pirko <jiri@resnulli.us>2013-12-18 13:26:49 +0100
commit4376e752c822444f1a26b5e1e974ddd7104ae15c (patch)
tree5dcfe1c111bc7464091d17343edd897e178b82c9
parent98bdaa1cb94faff0ccf992abc40a352ea16640fa (diff)
downloadlibndp-4376e752c822444f1a26b5e1e974ddd7104ae15c.tar.gz
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 <dcbw@redhat.com> Signed-off-by: Jiri Pirko <jiri@resnulli.us>
-rw-r--r--libndp/libndp.c2
1 files changed, 1 insertions, 1 deletions
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;