AWS S3 requires Days to be a positive non-zero integer. Parse Days as
a signed integer and validate in get_params() before any restore state
is modified, returning InvalidArgument for values less than 1.
Signed-off-by: Matthew N. Heler <matthew.heler@hotmail.com>
}
struct RestoreObjectRequest {
- std::optional<uint64_t> days;
+ std::optional<int64_t> days;
void decode_xml(XMLObj *obj) {
RGWXMLDecoder::decode_xml("Days", days, obj);
}
if (request.days) {
+ if (request.days.value() < 1) {
+ s->err.message = "Days must be a positive integer";
+ return -EINVAL;
+ }
expiry_days = request.days.value();
ldpp_dout(this, 10) << "expiry_days=" << expiry_days << dendl;
} else {