CVE-2022-3854: rgw: Fix `rgw::sal::Bucket::empty` static method signatures
authorAdam C. Emerson <aemerson@redhat.com>
Mon, 11 Jul 2022 15:52:09 +0000 (11:52 -0400)
committerThomas Goirand <zigo@debian.org>
Mon, 9 Jan 2023 10:41:27 +0000 (10:41 +0000)
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
Fixes: https://tracker.ceph.com/issues/56586
Origin: upstream, https://github.com/ceph/ceph/pull/47194/commits/9746e8011ff1de6de7dba9c0041e28a16c8f6828.patch
Bug-Debian: https://bugs.debian.org/1027151
Last-Update: 2022-01-09

`unique_ptr` overload should take by reference.

Both should be const.

Gbp-Pq: Name CVE-2022-3854_2_rgw_Fix_rgw_sal_Bucket_empty_static_method_signatures.patch

src/rgw/rgw_sal.h

index 74c15ecdddd3f903adab8cb51852ceae9feedc70..fcf015e0a5b40a5a24da121d897621edb5d0554a 100644 (file)
@@ -280,7 +280,11 @@ class RGWBucket {
       ent.convert(b);
     }
 
-    static bool empty(RGWBucket* b) { return (!b || b->empty()); }
+    /** Check if a Bucket pointer is empty */
+    static bool empty(const RGWBucket* b) { return (!b || b->empty()); }
+    /** Check if a Bucket unique pointer is empty */
+    static bool empty(const std::unique_ptr<RGWBucket>& b) { return (!b || b->empty()); }
+
     virtual std::unique_ptr<RGWBucket> clone() = 0;
 
     /* dang - This is temporary, until the API is completed */