From: Florin Coras Date: Sat, 7 Dec 2024 22:28:46 +0000 (-0500) Subject: vcl: fix ldp getsockopt tcp_info length check X-Git-Tag: v25.06-rc0~105 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F76%2F41976%2F3;p=vpp.git vcl: fix ldp getsockopt tcp_info length check netinet/tcp.h and linux/tcp.h have different lenghts but overlap. LDP uses the former while iperf the latter. Accept both lengths for now as we do not support exposing tcp metrics via ldp. Type: improvement Change-Id: I13a149d68715ed9451773630a3595c09c421aa29 Signed-off-by: Florin Coras --- diff --git a/src/vcl/ldp.c b/src/vcl/ldp.c index e1046441968..023a0eb0184 100644 --- a/src/vcl/ldp.c +++ b/src/vcl/ldp.c @@ -2020,10 +2020,14 @@ getsockopt (int fd, int level, int optname, optval, optlen); break; case TCP_INFO: - if (optval && optlen && (*optlen == sizeof (struct tcp_info))) + /* Note: tcp_info in netinet/tcp.h and linux/tcp.h have + * different lenghts but overlap. Accept both for now */ + if (optval && optlen) { - LDBG (1, "fd %d: vlsh %u SOL_TCP, TCP_INFO, optval %p, " - "optlen %d: #LDP-NOP#", fd, vlsh, optval, *optlen); + LDBG (1, + "fd %d: vlsh %u SOL_TCP, TCP_INFO, optval %p, " + "optlen %d: #LDP-NOP#", + fd, vlsh, optval, *optlen); memset (optval, 0, *optlen); rv = VPPCOM_OK; }