From: Konstantin Ananyev <konstantin.anan...@huawei.com>

1) ../lib/eal/common/eal_common_proc.c:695:15
    : warning: variable length array used

As msg->num_fds should not exceed RTE_MP_MAX_FD_NUM, replaced
it with fixed size array.

Signed-off-by: Konstantin Ananyev <konstantin.anan...@huawei.com>
Acked-by: Stephen Hemminger <step...@networkplumber.org>
---
 lib/eal/common/eal_common_proc.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/eal/common/eal_common_proc.c b/lib/eal/common/eal_common_proc.c
index d24093937c..201973c5db 100644
--- a/lib/eal/common/eal_common_proc.c
+++ b/lib/eal/common/eal_common_proc.c
@@ -692,7 +692,8 @@ send_msg(const char *dst_path, struct rte_mp_msg *msg, int 
type)
        struct sockaddr_un dst;
        struct mp_msg_internal m;
        int fd_size = msg->num_fds * sizeof(int);
-       char control[CMSG_SPACE(fd_size)];
+       const int32_t control_sz = CMSG_SPACE(fd_size);
+       char control[CMSG_SPACE(sizeof(msg->fds))];
 
        m.type = type;
        memcpy(&m.msg, msg, sizeof(*msg));
@@ -712,7 +713,7 @@ send_msg(const char *dst_path, struct rte_mp_msg *msg, int 
type)
        msgh.msg_iov = &iov;
        msgh.msg_iovlen = 1;
        msgh.msg_control = control;
-       msgh.msg_controllen = sizeof(control);
+       msgh.msg_controllen = control_sz;
 
        cmsg = CMSG_FIRSTHDR(&msgh);
        cmsg->cmsg_len = CMSG_LEN(fd_size);
-- 
2.47.2.vfs.0.1

Reply via email to