diff --git a/Cargo.lock b/Cargo.lock index 7473d9af..b945676e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1679,6 +1679,7 @@ dependencies = [ "garage_model", "garage_table", "garage_util", + "html-escape", "http 1.4.0", "http-body-util", "hyper 1.8.1", @@ -1949,6 +1950,15 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "html-escape" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" +dependencies = [ + "utf8-width", +] + [[package]] name = "http" version = "0.2.12" @@ -4820,6 +4830,12 @@ dependencies = [ "serde", ] +[[package]] +name = "utf8-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1292c0d970b54115d14f2492fe0170adf21d68a1de108eebc51c1df4f346a091" + [[package]] name = "utf8_iter" version = "1.0.4" diff --git a/Cargo.toml b/Cargo.toml index df4005a3..98833cd9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,6 +56,7 @@ gethostname = "0.4" git-version = "0.3.4" hex = "0.4" hexdump = "0.1" +html-escape = "0.2.13" hmac = "0.12" itertools = "0.12" ipnet = "2.9.0" diff --git a/src/web/Cargo.toml b/src/web/Cargo.toml index e0cb317f..a84c16c5 100644 --- a/src/web/Cargo.toml +++ b/src/web/Cargo.toml @@ -20,6 +20,7 @@ garage_model.workspace = true garage_util.workspace = true garage_table.workspace = true +html-escape.workspace = true thiserror.workspace = true tracing.workspace = true percent-encoding.workspace = true diff --git a/src/web/web_server.rs b/src/web/web_server.rs index ea02ab0f..ecd8399d 100644 --- a/src/web/web_server.rs +++ b/src/web/web_server.rs @@ -411,7 +411,7 @@ fn error_to_res(e: Error) -> Response> {
  • Message: {s3_message}.
  • ", s3_code = err.aws_code(), - s3_message = err, + s3_message = html_escape::encode_text(&err.to_string()), )); } let mut http_error = Response::new(string_body(body_str));