aboutsummaryrefslogtreecommitdiff
path: root/src/api/s3/post_object.rs
diff options
context:
space:
mode:
authorAlex Auvolat <lx@deuxfleurs.fr>2025-02-18 13:59:43 +0100
committerAlex Auvolat <lx@deuxfleurs.fr>2025-02-18 15:33:42 +0100
commit730bfee753c4f22cd0595d9195222de334ec36f9 (patch)
tree10cae28065967f82adcb145e027c15c38b9502be /src/api/s3/post_object.rs
parentccab0e4ae5c083d0a06ad2b3ef5fe62481da3c2c (diff)
downloadgarage-730bfee753c4f22cd0595d9195222de334ec36f9.tar.gz
garage-730bfee753c4f22cd0595d9195222de334ec36f9.zip
api: validate trailing checksum + add test for unsigned-paylad-trailer
Diffstat (limited to 'src/api/s3/post_object.rs')
-rw-r--r--src/api/s3/post_object.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/api/s3/post_object.rs b/src/api/s3/post_object.rs
index 6c1b7453..350684da 100644
--- a/src/api/s3/post_object.rs
+++ b/src/api/s3/post_object.rs
@@ -218,6 +218,7 @@ pub async fn handle_post_object(
// around here to make sure the rest of the machinery takes our acl into account.
let headers = get_headers(&params)?;
+ let checksum_algorithm = request_checksum_algorithm(&params)?;
let expected_checksums = ExpectedChecksums {
md5: params
.get("content-md5")
@@ -225,7 +226,9 @@ pub async fn handle_post_object(
.transpose()?
.map(str::to_string),
sha256: None,
- extra: request_checksum_algorithm_value(&params)?,
+ extra: checksum_algorithm
+ .map(|algo| extract_checksum_value(&params, algo))
+ .transpose()?,
};
let meta = ObjectVersionMetaInner {