added s3 max segment length check
This commit is contained in:
		| @@ -48,6 +48,7 @@ inline constexpr auto default_timeout_ms{60000U}; | |||||||
| inline constexpr auto default_ui_mgmt_port{std::uint16_t{30000U}}; | inline constexpr auto default_ui_mgmt_port{std::uint16_t{30000U}}; | ||||||
| inline constexpr auto max_ring_buffer_file_size{std::uint16_t(1024U)}; | inline constexpr auto max_ring_buffer_file_size{std::uint16_t(1024U)}; | ||||||
| inline constexpr auto max_s3_object_name_length{1024U}; | inline constexpr auto max_s3_object_name_length{1024U}; | ||||||
|  | inline constexpr auto max_s3_segment_name_length{255U}; | ||||||
| inline constexpr auto min_cache_size_bytes{ | inline constexpr auto min_cache_size_bytes{ | ||||||
|     std::uint64_t(100ULL * 1024ULL * 1024ULL), |     std::uint64_t(100ULL * 1024ULL * 1024ULL), | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -48,6 +48,16 @@ namespace { | |||||||
| [[nodiscard]] auto set_request_path(auto &request, std::string_view object_name) | [[nodiscard]] auto set_request_path(auto &request, std::string_view object_name) | ||||||
|     -> repertory::api_error { |     -> repertory::api_error { | ||||||
|   request.path = object_name; |   request.path = object_name; | ||||||
|  |  | ||||||
|  |   { | ||||||
|  |     auto parts = repertory::utils::string::split(request.path, '/', false); | ||||||
|  |     if (std::ranges::find_if(parts, [](auto &&part) -> bool { | ||||||
|  |           return part.size() > repertory::max_s3_segment_name_length; | ||||||
|  |         }) != parts.end()) { | ||||||
|  |       return repertory::api_error::name_too_long; | ||||||
|  |     } | ||||||
|  |   }; | ||||||
|  |  | ||||||
|   return (request.path.substr(1U).size() > repertory::max_s3_object_name_length) |   return (request.path.substr(1U).size() > repertory::max_s3_object_name_length) | ||||||
|              ? repertory::api_error::name_too_long |              ? repertory::api_error::name_too_long | ||||||
|              : repertory::api_error::success; |              : repertory::api_error::success; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user