From e4b5d02d5543fe8bf118572981b77b8f0889b444 Mon Sep 17 00:00:00 2001 From: Lethe Date: Wed, 30 Jul 2025 17:12:25 +0000 Subject: [PATCH] fix: remove redundant memset on af_packet recv --- rattan-core/src/metal/io/af_packet.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rattan-core/src/metal/io/af_packet.rs b/rattan-core/src/metal/io/af_packet.rs index 41188651..282c1ffd 100644 --- a/rattan-core/src/metal/io/af_packet.rs +++ b/rattan-core/src/metal/io/af_packet.rs @@ -91,7 +91,11 @@ impl InterfaceReceiver for AfPacketReceiver { let mut sockaddr = mem::MaybeUninit::::uninit(); let mut len = mem::size_of_val(&sockaddr) as socklen_t; - let buf = [0u8; 65537]; + let buf: mem::MaybeUninit<[u8; 65537]> = mem::MaybeUninit::uninit(); + + // Safety: return value (`ret`) of libc::recvfrom is used to mark the initialized part of buffer, which is + // exposed out of this function. + let buf = unsafe { buf.assume_init() }; let (ret, addr_ll) = unsafe { let ret = Errno::result(libc::recvfrom(