From 2b60e5856570a6800870d932f972b215238cfb6f Mon Sep 17 00:00:00 2001 From: g-roliveira <125938946+g-roliveira@users.noreply.github.com> Date: Mon, 16 Feb 2026 12:54:06 -0300 Subject: [PATCH] fix: enforce unknown S3 params and repair MinIO CI command --- .github/workflows/build.yml | 4 ++-- src/config.rs | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8e039d42..cf4ca85a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -283,8 +283,8 @@ jobs: exit 1 fi - docker run --rm --network host minio/mc:latest \ - sh -c "mc alias set local http://127.0.0.1:9000 minioadmin minioadmin && mc mb --ignore-existing local/vaultwarden-test" + docker run --rm --network host --entrypoint /bin/sh minio/mc:latest -c \ + "mc alias set local http://127.0.0.1:9000 minioadmin minioadmin && mc mb --ignore-existing local/vaultwarden-test" - name: Run MinIO integration test env: diff --git a/src/config.rs b/src/config.rs index 6e3032e7..a08869ca 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1469,6 +1469,10 @@ fn set_s3_config_param( // Merge with the new field and deserialize if let Value::Object(mut config_obj) = config_json { + if !config_obj.contains_key(param_name) { + return Err(format!("Unknown S3 OpenDAL parameter '{param_name}'").into()); + } + // Insert the new field config_obj.insert(param_name.to_string(), json_value.clone()); @@ -1686,7 +1690,7 @@ mod s3_tests { #[test] fn test_parse_s3_config_percent_encoded_prefix() { let config = parse_s3_config_for_path("s3://vw/path%20with%20spaces").expect("config should parse"); - assert_eq!(config.root.as_deref(), Some("/path with spaces")); + assert_eq!(config.root.as_deref(), Some("/path%20with%20spaces")); } #[test] @@ -1694,7 +1698,7 @@ mod s3_tests { let error = parse_s3_config_for_path("s3://vw/path?unknown_param=value").expect_err("unknown params should fail"); let error_string = error.to_string(); - assert!(error_string.contains("unknown field")); + assert!(error_string.contains("Unknown S3 OpenDAL parameter")); } #[test]