From ad29f57f828f72032403c37cd69f5302e99790ec Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 28 Jan 2015 21:43:18 +0100 Subject: fastd_string_stack_dup[n]: use memcpy instead of strcpy when the length of the string is known Is a bit more optimized and avoids a warning on OpenBSD --- src/fastd.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/fastd.h b/src/fastd.h index b4266ff..3ae856c 100644 --- a/src/fastd.h +++ b/src/fastd.h @@ -439,9 +439,12 @@ static inline bool fastd_peer_address_is_v6_ll(const fastd_peer_address_t *addr) /** Duplicates a string, creating a one-element string stack */ static inline fastd_string_stack_t * fastd_string_stack_dup(const char *str) { - fastd_string_stack_t *ret = fastd_alloc(alignto(sizeof(fastd_string_stack_t) + strlen(str) + 1, 8)); + size_t str_len = strlen(str); + fastd_string_stack_t *ret = fastd_alloc(alignto(sizeof(fastd_string_stack_t) + str_len + 1, 8)); + ret->next = NULL; - strcpy(ret->str, str); + + memcpy(ret->str, str, str_len + 1); return ret; } @@ -450,8 +453,10 @@ static inline fastd_string_stack_t * fastd_string_stack_dup(const char *str) { static inline fastd_string_stack_t * fastd_string_stack_dupn(const char *str, size_t len) { size_t str_len = strnlen(str, len); fastd_string_stack_t *ret = fastd_alloc(alignto(sizeof(fastd_string_stack_t) + str_len + 1, 8)); + ret->next = NULL; - strncpy(ret->str, str, str_len); + + memcpy(ret->str, str, str_len); ret->str[str_len] = 0; return ret; -- cgit v1.2.3