From: Matt Benjamin Date: Fri, 30 Aug 2024 13:34:18 +0000 (-0400) Subject: rgw: defensive check for part cksum in try_sum_part_cksums X-Git-Tag: testing/wip-vshankar-testing-20250115.164543-debug~41^2~9 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=5c4d5942835f3485558617903990fabee11c625e;p=ceph-ci.git 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 --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 7082b3ec751..687480caf88 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -6727,6 +6727,14 @@ try_sum_part_cksums(const DoutPrefixProvider *dpp, ++parts_ix; auto& part_cksum = part.second->get_cksum(); + if (! part_cksum) { + ldpp_dout_fmt(dpp, 0, + "ERROR: multipart part checksum not present (ix=={})", + parts_ix); + op_ret = -ERR_INVALID_REQUEST; + return op_ret; + } + ldpp_dout_fmt(dpp, 16, "INFO: {} iterate part: {} {} {}", __func__, parts_ix, part_cksum->type_string(),