]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: defensive check for part cksum in try_sum_part_cksums
authorMatt Benjamin <mbenjamin@redhat.com>
Fri, 30 Aug 2024 13:34:18 +0000 (09:34 -0400)
committerMatt Benjamin <mbenjamin@redhat.com>
Wed, 8 Jan 2025 00:17:03 +0000 (19:17 -0500)
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 <mbenjamin@redhat.com>
src/rgw/rgw_op.cc

index 7082b3ec7511695229977cb58e45ea1058c04f47..687480caf8867bfaff91579511df8ffd147810ca 100644 (file)
@@ -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(),