diff --git a/src/control_server.c b/src/control_server.c index 6b03e490..6708acc3 100644 --- a/src/control_server.c +++ b/src/control_server.c @@ -12,6 +12,7 @@ #include "route_lib.h" #include "route_bgp.h" #include "pkt_normalizer.h" +#include "../tools/etcpmon/etcpmon_protocol.h" #include "../lib/u_async.h" #include "../lib/debug_config.h" #include "../lib/mem.h" @@ -812,8 +813,8 @@ static void send_socket_list(struct control_server* server, struct control_clien struct etcpmon_socket_info* info = (struct etcpmon_socket_info*)(buffer + sizeof(*hdr) + sizeof(*rsp)); sock = instance->etcp_sockets; for (uint8_t i = 0; i < count && sock; i++) { - strncpy(info[i].name, sock->name, sizeof(info[i].name) - 1); - info[i].name[sizeof(info[i].name) - 1] = '\0'; + strncpy(info[i].name, sock->name, ETCPMON_MAX_CONN_NAME - 1); + info[i].name[ETCPMON_MAX_CONN_NAME - 1] = '\0'; info[i].is_ipv6 = (sock->local_addr.ss_family == AF_INET6) ? 1 : 0; if (sock->local_addr.ss_family == AF_INET) { struct sockaddr_in* sin = (struct sockaddr_in*)&sock->local_addr;