]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/s3: fix PutObject's canned_acl comparisons for BlockPublicAcls 64290/head
authorCasey Bodley <cbodley@redhat.com>
Tue, 1 Jul 2025 14:42:15 +0000 (10:42 -0400)
committerCasey Bodley <cbodley@redhat.com>
Tue, 1 Jul 2025 15:00:40 +0000 (11:00 -0400)
canned_acl.compare() returns 0 for matches, so this was rejecting all canned acls

Fixes: https://tracker.ceph.com/issues/49135
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_op.cc

index 03daa69350637fd0350d57c45e610ab931613c10..2d1f7d2fe2a890814c17bba6565ed3fe36cd1f07 100644 (file)
@@ -4107,9 +4107,9 @@ int RGWPutObj::init_processing(optional_yield y) {
 
   // reject public canned acls
   if (s->bucket_access_conf && s->bucket_access_conf->block_public_acls() &&
-      (s->canned_acl.compare("public-read") ||
-       s->canned_acl.compare("public-read-write") ||
-       s->canned_acl.compare("authenticated-read"))) {
+      (s->canned_acl == "public-read" ||
+       s->canned_acl == "public-read-write" ||
+       s->canned_acl == "authenticated-read")) {
     return -EACCES;
   }