]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw/s3: fix PutObject's canned_acl comparisons for BlockPublicAcls
authorCasey Bodley <cbodley@redhat.com>
Tue, 1 Jul 2025 14:42:15 +0000 (10:42 -0400)
committerThomas Serlin <tserlin@redhat.com>
Mon, 22 Sep 2025 19:18:18 +0000 (15:18 -0400)
canned_acl.compare() returns 0 for matches, so this was rejecting all canned acls

Fixes: https://tracker.ceph.com/issues/49135
Resolves: rhbz#2344639

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit e9eedecdc85609e6d7f7bcb071334fcb6663c504)
(cherry picked from commit 30a57c148f9b4869f454a9dc94bf4d923db6833c)

src/rgw/rgw_op.cc

index e8ce0cb17ebc1faade88e7be495d7c440ac0b15a..1c11fd5382a812af0d056c8558145f736b75cebb 100644 (file)
@@ -4100,9 +4100,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;
   }