From 2440ef302bc4066c410dff373985206631d2378e Mon Sep 17 00:00:00 2001 From: Benton60 Date: Tue, 7 Apr 2026 02:08:15 -0400 Subject: [PATCH] switch to using the remote endpoint for getpeername checks --- netstack/src/scheme/udp.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/netstack/src/scheme/udp.rs b/netstack/src/scheme/udp.rs index f32594cf99..35d396a925 100644 --- a/netstack/src/scheme/udp.rs +++ b/netstack/src/scheme/udp.rs @@ -383,10 +383,14 @@ impl<'a> SchemeSocket for UdpSocket<'a> { file: &SchemeFile, buf: &mut [u8], ) -> SyscallResult { - if self.endpoint().addr.is_some() || self.endpoint().port != 0 { - return self.fpath(file, buf) + let peer = match file { + SchemeFile::Socket(SocketFile { data, .. }) => data, + _ => return Err(SyscallError::new(syscall::EBADF)), + }; + if peer.addr.is_some() || peer.port != 0 { + self.fpath(file, buf) } else { - return Err(SyscallError::new(syscall::ENOTCONN)); + Err(SyscallError::new(syscall::ENOTCONN)) } }