Sizeof will return the size of a pointer, which is not correct intended.
Introduced-by: 672ddfd506 ("teamd: move arp ping link watcher to a separate file") Signed-off-by: Jiri Pirko jiri@resnulli.us --- teamd/teamd_link_watch.c | 5 ++--- teamd/teamd_link_watch.h | 2 +- teamd/teamd_lw_arp_ping.c | 2 +- teamd/teamd_lw_nsna_ping.c | 5 +++-- 4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/teamd/teamd_link_watch.c b/teamd/teamd_link_watch.c index 55d81a9..9441bd6 100644 --- a/teamd/teamd_link_watch.c +++ b/teamd/teamd_link_watch.c @@ -64,13 +64,12 @@ int __set_sockaddr(struct sockaddr *sa, socklen_t sa_len, sa_family_t family,
char *__str_sockaddr(struct sockaddr *sa, socklen_t sa_len, sa_family_t family, - char buf[]) + char *buf, size_t buflen) { int err;
sa->sa_family = family; - err = getnameinfo(sa, sa_len, buf, sizeof(buf), - NULL, 0, NI_NUMERICHOST); + err = getnameinfo(sa, sa_len, buf, buflen, NULL, 0, NI_NUMERICHOST); if (err) { teamd_log_err("getnameinfo failed: %s", gai_strerror(err)); return NULL; diff --git a/teamd/teamd_link_watch.h b/teamd/teamd_link_watch.h index 8b76653..a4d441c 100644 --- a/teamd/teamd_link_watch.h +++ b/teamd/teamd_link_watch.h @@ -45,7 +45,7 @@ struct lw_psr_port_priv { int __set_sockaddr(struct sockaddr *sa, socklen_t sa_len, sa_family_t family, const char *hostname); char *__str_sockaddr(struct sockaddr *sa, socklen_t sa_len, sa_family_t family, - char buf[]); + char *buf, size_t buflen);
static inline bool teamd_link_watch_link_up_differs(struct lw_common_port_priv *common_ppriv, bool new_link_up) diff --git a/teamd/teamd_lw_arp_ping.c b/teamd/teamd_lw_arp_ping.c index 77d6de5..dc7515f 100644 --- a/teamd/teamd_lw_arp_ping.c +++ b/teamd/teamd_lw_arp_ping.c @@ -122,7 +122,7 @@ static char *str_in_addr(struct in_addr *addr)
memcpy(&sin.sin_addr, addr, sizeof(*addr)); return __str_sockaddr((struct sockaddr *) &sin, sizeof(sin), AF_INET, - buf); + buf, sizeof(buf)); }
static int lw_ap_sock_open(struct lw_psr_port_priv *psr_ppriv) diff --git a/teamd/teamd_lw_nsna_ping.c b/teamd/teamd_lw_nsna_ping.c index 4b9e52e..468143e 100644 --- a/teamd/teamd_lw_nsna_ping.c +++ b/teamd/teamd_lw_nsna_ping.c @@ -45,8 +45,9 @@ static int set_sockaddr_in6(struct sockaddr_in6 *sin6, const char *hostname) static char *str_sockaddr_in6(struct sockaddr_in6 *sin6) { static char buf[NI_MAXHOST]; - return __str_sockaddr((struct sockaddr *) sin6, - sizeof(*sin6), AF_INET6, buf); + + return __str_sockaddr((struct sockaddr *) sin6, sizeof(*sin6), AF_INET6, + buf, sizeof(buf)); }
struct lw_nsnap_port_priv {