From b844e447c0b3bc487883546cdf06fe32c3b1ce0f Mon Sep 17 00:00:00 2001 From: 4t145 Date: Thu, 29 Feb 2024 00:20:59 +0800 Subject: [PATCH] fix #762 move tle key reader out from loop to avoid infinity loop --- poem/src/listener/rustls.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/poem/src/listener/rustls.rs b/poem/src/listener/rustls.rs index 2480dca665..40e8a8aadb 100644 --- a/poem/src/listener/rustls.rs +++ b/poem/src/listener/rustls.rs @@ -72,9 +72,9 @@ impl RustlsCertificate { let cert = rustls_pemfile::certs(&mut self.cert.as_slice()) .collect::>() .map_err(|_| IoError::new(ErrorKind::Other, "failed to parse tls certificates"))?; - + let mut key_reader = self.key.as_slice(); let priv_key = loop { - match rustls_pemfile::read_one(&mut self.key.as_slice())? { + match rustls_pemfile::read_one(&mut key_reader)? { Some(Item::Pkcs1Key(key)) => break key.into(), Some(Item::Pkcs8Key(key)) => break key.into(), Some(Item::Sec1Key(key)) => break key.into(),