X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning-block-sync%2Fsrc%2Fhttp.rs;h=2e70e18659936e2746638ba684b36ce20c3095ca;hb=f0084e12e214c4b993ef01e02067bfdc27a135e0;hp=154afa4889c7b7b9e263eac22cf6f5e5aff0bfd2;hpb=4f880c6b75e6b02072fa5dd37ee475538533393a;p=rust-lightning diff --git a/lightning-block-sync/src/http.rs b/lightning-block-sync/src/http.rs index 154afa48..2e70e186 100644 --- a/lightning-block-sync/src/http.rs +++ b/lightning-block-sync/src/http.rs @@ -348,9 +348,11 @@ impl HttpClient { if !status.is_ok() { // TODO: Handle 3xx redirection responses. - let error_details = match contents.is_ascii() { - true => String::from_utf8_lossy(&contents).to_string(), - false => "binary".to_string() + let error_details = match String::from_utf8(contents) { + // Check that the string is all-ASCII with no control characters before returning + // it. + Ok(s) if s.as_bytes().iter().all(|c| c.is_ascii() && !c.is_ascii_control()) => s, + _ => "binary".to_string() }; let error_msg = format!("Errored with status: {} and contents: {}", status.code, error_details);