From e9561870c00a7c165f46894de03ece5062451b0d Mon Sep 17 00:00:00 2001 From: dmiller Date: Wed, 30 Sep 2026 18:56:18 +0000 Subject: [PATCH] Pass correct sockaddr length. Fixes #3510. Closes #3511 --- CHANGELOG | 5 +++-- nping/ProbeMode.cc | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 45c39c22b..f0e229e5d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -25,9 +25,10 @@ o [Nsock][GH#3449] Nsock no longer calls fatal() when encountering a pcap-related error. Instead, errors are propagated to the caller the same way other socket errors are handled. -o [GH#3438] Fixed warnings and crashes due to bind() failing on macOS and - FreeBSD. Error messages similar to: +o [GH#3438][GH#3511] Fixed warnings and crashes due to bind() failing on macOS + and FreeBSD, as well as Nping probe failures. Error messages similar to: "mksock_bind_addr(): Bind to :0 failed (IOD #3): Invalid argument (22)" + [Daniel Miller, MRX-72] o [Zenmap][GH#3431] Fix "KeyError: 'vl_6_logo'" crash in Zenmap 7.991. diff --git a/nping/ProbeMode.cc b/nping/ProbeMode.cc index 7238923fd..7e8179680 100644 --- a/nping/ProbeMode.cc +++ b/nping/ProbeMode.cc @@ -1871,7 +1871,7 @@ void ProbeMode::probe_tcpconnect_event_handler(nsock_pool nsp, nsock_event nse, /* Set socket source address. This allows setting things like custom source port */ struct sockaddr_storage ss; - nsock_iod_set_localaddr(fds[packetno%max_iods], o.getSourceSockAddr(&ss), sizeof(sockaddr_storage)); + nsock_iod_set_localaddr(fds[packetno%max_iods], o.getSourceSockAddr(&ss), sslen); /*Set socket options for REUSEADDR*/ //setsockopt(nsock_iod_get_sd(fds[packetno%max_iods]),SOL_SOCKET,SO_REUSEADDR,&optval,sizeof(optval)); @@ -2080,7 +2080,7 @@ void ProbeMode::probe_udpunpriv_event_handler(nsock_pool nsp, nsock_event nse, v /* Set socket source address. This allows setting things like custom source port */ struct sockaddr_storage ss; - nsock_iod_set_localaddr(fds[packetno%max_iods], o.getSourceSockAddr(&ss), sizeof(sockaddr_storage)); + nsock_iod_set_localaddr(fds[packetno%max_iods], o.getSourceSockAddr(&ss), sslen); /* I dunno if it's safe to schedule an nsock_write before we