listobjects: fix panic if continuation token is an empty string

This commit is contained in:
Alex Auvolat 2023-10-19 15:08:47 +02:00
parent a5e8ffeb63
commit 158dc17a06

View file

@ -530,8 +530,8 @@ impl ListObjectsQuery {
// string in the spec, so we can do whatever we want with it. // string in the spec, so we can do whatever we want with it.
// In our case, it is defined as either [ or ] (for include // In our case, it is defined as either [ or ] (for include
// representing the key to start with. // representing the key to start with.
(Some(token), _) => match &token[..1] { (Some(token), _) => match &token.get(..1) {
"[" => Ok(RangeBegin::IncludingKey { Some("[") => Ok(RangeBegin::IncludingKey {
key: String::from_utf8( key: String::from_utf8(
BASE64_STANDARD BASE64_STANDARD
.decode(token[1..].as_bytes()) .decode(token[1..].as_bytes())
@ -539,7 +539,7 @@ impl ListObjectsQuery {
)?, )?,
fallback_key: None, fallback_key: None,
}), }),
"]" => Ok(RangeBegin::AfterKey { Some("]") => Ok(RangeBegin::AfterKey {
key: String::from_utf8( key: String::from_utf8(
BASE64_STANDARD BASE64_STANDARD
.decode(token[1..].as_bytes()) .decode(token[1..].as_bytes())