diff --git a/tokio/CHANGELOG.md b/tokio/CHANGELOG.md index 42d1f6b8f2a..60266e42b35 100644 --- a/tokio/CHANGELOG.md +++ b/tokio/CHANGELOG.md @@ -134,6 +134,14 @@ This release fixes a bug in `Notified::enable`. ([#4747]) [#4729]: https://github.com/tokio-rs/tokio/pull/4729 [#4739]: https://github.com/tokio-rs/tokio/pull/4739 +# 1.18.5 (January 17, 2023) + +### Fixed + +- io: fix unsoundness in `ReadHalf::unsplit` ([#5375]) + +[#5375]: https://github.com/tokio-rs/tokio/pull/5375 + # 1.18.4 (January 3, 2022) ### Fixed @@ -270,7 +278,7 @@ performance improvements. - time: use bit manipulation instead of modulo to improve performance ([#4480]) - net: use `std::future::Ready` instead of our own `Ready` future ([#4271]) - replace deprecated `atomic::spin_loop_hint` with `hint::spin_loop` ([#4491]) -- fix miri failures in intrusive linked lists ([#4397]) +- fix miri failures in intrusive linked lists ([#4397]) ### Documented diff --git a/tokio/src/io/split.rs b/tokio/src/io/split.rs index 2e0da95665f..f067b65a826 100644 --- a/tokio/src/io/split.rs +++ b/tokio/src/io/split.rs @@ -75,7 +75,10 @@ impl ReadHalf { /// This can be checked ahead of time by comparing the stream ID /// of the two halves. #[track_caller] - pub fn unsplit(self, wr: WriteHalf) -> T { + pub fn unsplit(self, wr: WriteHalf) -> T + where + T: Unpin, + { if self.is_pair_of(&wr) { drop(wr);