diff --git a/crates/shadowsocks-service/src/local/tun/virt_device.rs b/crates/shadowsocks-service/src/local/tun/virt_device.rs index 0ea60cfc..9115e2f4 100644 --- a/crates/shadowsocks-service/src/local/tun/virt_device.rs +++ b/crates/shadowsocks-service/src/local/tun/virt_device.rs @@ -144,7 +144,8 @@ impl Drop for TokenBuffer { impl TokenBuffer { pub fn with_capacity(cap: usize) -> TokenBuffer { let mut list = TOKEN_BUFFER_LIST.lock().unwrap(); - if let Some(buffer) = list.pop() { + if let Some(mut buffer) = list.pop() { + buffer.reserve(cap); return TokenBuffer { buffer }; } TokenBuffer {