From 0196e1a0488e0e8b28ae8ddb158cc56d4ce0c972 Mon Sep 17 00:00:00 2001 From: Ollie Date: Thu, 13 Aug 2026 13:31:48 +0100 Subject: [PATCH] fix: make_mut deref resolved to the wrong From impl, aliasing shared buffers --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 384551d..fc8a763 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -453,7 +453,7 @@ impl InlineArray { } Kind::SmallRemote => { if self.deref_small_trailer().rc.load(Ordering::Acquire) != 1 { - *self = InlineArray::from(self.deref()) + *self = InlineArray::from(&**self) } unsafe { let len = self.deref_small_trailer().len(); @@ -464,7 +464,7 @@ impl InlineArray { } Kind::BigRemote => { if self.deref_big_header().rc.load(Ordering::Acquire) != 1 { - *self = InlineArray::from(self.deref()) + *self = InlineArray::from(&**self) } unsafe { let data_ptr = self.remote_ptr().add(size_of::());