diff --git a/crates/shadowsocks/src/relay/tcprelay/aead.rs b/crates/shadowsocks/src/relay/tcprelay/aead.rs index c6aa9c4b68a8..6945502cf84c 100644 --- a/crates/shadowsocks/src/relay/tcprelay/aead.rs +++ b/crates/shadowsocks/src/relay/tcprelay/aead.rs @@ -254,8 +254,9 @@ impl DecryptedReader { } // Check repeated salt after first successful decryption #442 - if let Some(ref salt) = self.salt { - context.check_nonce_replay(self.method, salt)?; + if self.salt.is_some() { + let salt = self.salt.take().unwrap(); + context.check_nonce_replay(self.method, &salt)?; } // Remote TAG