diff --git a/subsys/net/lib/dns/mdns_responder.c b/subsys/net/lib/dns/mdns_responder.c index 9f8a91824a6..ff7d148afdb 100644 --- a/subsys/net/lib/dns/mdns_responder.c +++ b/subsys/net/lib/dns/mdns_responder.c @@ -1368,7 +1368,8 @@ static int init_listener(void) ifindex, ret); } else { memset(&if_req, 0, sizeof(if_req)); - strncpy(if_req.ifr_name, name, sizeof(if_req.ifr_name) - 1); + memcpy(if_req.ifr_name, name, + MIN(sizeof(name) - 1, sizeof(if_req.ifr_name) - 1)); ret = zsock_setsockopt(v6, SOL_SOCKET, SO_BINDTODEVICE, &if_req, sizeof(if_req)); @@ -1464,7 +1465,8 @@ static int init_listener(void) ifindex, ret); } else { memset(&if_req, 0, sizeof(if_req)); - strncpy(if_req.ifr_name, name, sizeof(if_req.ifr_name) - 1); + memcpy(if_req.ifr_name, name, + MIN(sizeof(name) - 1, sizeof(if_req.ifr_name) - 1)); ret = zsock_setsockopt(v4, SOL_SOCKET, SO_BINDTODEVICE, &if_req, sizeof(if_req));