diff --git a/src/platform/redox/socket.rs b/src/platform/redox/socket.rs index 4ae7f2cac7..0dc0da6115 100644 --- a/src/platform/redox/socket.rs +++ b/src/platform/redox/socket.rs @@ -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::() // name_len + 64 //reserve extra space for the scheme path + + mem::size_of::() // name_len + mhdr.msg_namelen as usize // name_buffer + mem::size_of::() // payload_len + whole_iov_size // payload_data_buffer + mem::size_of::() // 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)