reserve extra space for scheme path to fix os-test/sys_socket/recvfrom

This commit is contained in:
Benton60
2026-03-27 09:45:16 -04:00
parent 1d7e95b9d1
commit 5de398c6a9
+5 -4
View File
@@ -315,7 +315,7 @@ unsafe fn deserialize_name_from_stream(
return Err(Errno(EMSGSIZE));
}
if !mhdr.msg_name.is_null() && mhdr.msg_namelen > 0 {
let name_buffer = &msg_stream[*cursor..*cursor + name_len];
let name_buffer = &msg_stream[*cursor..*cursor + name_len_in_stream];
(unsafe {
inner_get_name_inner(
false,
@@ -325,7 +325,7 @@ unsafe fn deserialize_name_from_stream(
)
})?;
}
*cursor += name_len;
*cursor += name_len_in_stream;
} else {
// If name_len is 0, set msg_namelen to 0
mhdr.msg_namelen = 0;
@@ -837,12 +837,13 @@ impl PalSocket for Sys {
// [payload_len(usize)][payload_data_buffer]
// [ancillary_stream_buffer]
let expected_stream_size = {
mem::size_of::<usize>() // name_len
64 //reserve extra space for the scheme path
+ mem::size_of::<usize>() // name_len
+ mhdr.msg_namelen as usize // name_buffer
+ mem::size_of::<usize>() // payload_len
+ whole_iov_size // payload_data_buffer
+ mem::size_of::<usize>() // control_len
+ mhdr.msg_controllen as usize // ancillary_stream_buffer
+ mhdr.msg_controllen as usize // ancillary_stream_buffer
};
msg_stream
.try_reserve_exact(expected_stream_size)