Fix aws-sigv4 canonical request formatting fallibility (#1656)
* Fix panic occurred in formatting CanonicalRequest This commit addresses panic in the case of formatting a CanonicalRequest containing invalid UTF-8 in the header value. The commit aims for the least disturbance to the codebase in order to pass a given failing test in the PR. We want to quickly determine if this low-cost approach addresses the problem before we commit ourselves to start refactoring CanonicalRequest to have a special format function. Fixes #711 * Update test_signing_utf8_headers to proptest This commit converts test_signing_utf8_headers to a proptest. The original test only specified hardcoded non-UTF8 bytes in a request header. To ensure that `crate::http_request::sign` does not panic no matter what valid byte sequence for HeaderValue is, the proptest covers a wider range of inputs. For consistency, the test has been moved from `canonical_request.rs` to `sign.rs`. * Add InvalidHeaderError to make the error explicit This commit introduces an error type InvalidHeaderError to indicate that we ran into a problem in handling a HeaderValue within CanonicalRequest. The error type contains a source error such as Utf8Error so a diagnostic message can be printed if needed. * Remove InvalidHeaderError for error refactoring This commit effectively reverts 739b32c. Knowing that we will be cleaning up error types, having InvalidHeaderError is too narrow a solution and does not add value to the codebase. * Update CHANGELOG.next.toml Co-authored-by:Russell Cohen <rcoh@amazon.com> Co-authored-by:
Saito <awsaito@c889f3b5ddc4.ant.amazon.com>
Loading
Please register or sign in to comment