Skip to content

Commit 5c4d594

Browse files
committed
rgw: defensive check for part cksum in try_sum_part_cksums
If a create-multipart-upload requested additional checksum but a part upload omits it, fail gracefully. Possibly we can fixup the checksum uploads and remove this scenario, but coding defensively would still be correct. Signed-off-by: Matt Benjamin <[email protected]>
1 parent b164ad8 commit 5c4d594

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/rgw/rgw_op.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6727,6 +6727,14 @@ try_sum_part_cksums(const DoutPrefixProvider *dpp,
67276727
++parts_ix;
67286728
auto& part_cksum = part.second->get_cksum();
67296729

6730+
if (! part_cksum) {
6731+
ldpp_dout_fmt(dpp, 0,
6732+
"ERROR: multipart part checksum not present (ix=={})",
6733+
parts_ix);
6734+
op_ret = -ERR_INVALID_REQUEST;
6735+
return op_ret;
6736+
}
6737+
67306738
ldpp_dout_fmt(dpp, 16,
67316739
"INFO: {} iterate part: {} {} {}",
67326740
__func__, parts_ix, part_cksum->type_string(),

0 commit comments

Comments
 (0)