From ffa91f9794272519e181de249486fe2874a40797 Mon Sep 17 00:00:00 2001 From: Poorna Date: Wed, 10 Apr 2024 23:42:51 -0700 Subject: [PATCH] fix CopyObject with replace overwriting inline status (#19468) Fixes #19450 - internal inline-data header can get overwritten during copy with replace before this fix. --- cmd/erasure-object.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/erasure-object.go b/cmd/erasure-object.go index ada14422e..4b40750e3 100644 --- a/cmd/erasure-object.go +++ b/cmd/erasure-object.go @@ -147,11 +147,12 @@ func (er erasureObjects) CopyObject(ctx context.Context, srcBucket, srcObject, d modTime = dstOpts.MTime fi.ModTime = dstOpts.MTime } + // check inline before overwriting metadata. + inlineData := fi.InlineData() fi.Metadata = srcInfo.UserDefined srcInfo.UserDefined["etag"] = srcInfo.ETag - inlineData := fi.InlineData() freeVersionID := fi.TierFreeVersionID() freeVersionMarker := fi.TierFreeVersion()