]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/auth: perm_mask uses std::optional 43829/head
authorCasey Bodley <cbodley@redhat.com>
Fri, 5 Nov 2021 20:02:17 +0000 (16:02 -0400)
committerCasey Bodley <cbodley@redhat.com>
Fri, 5 Nov 2021 20:17:28 +0000 (16:17 -0400)
resolves a compiler warning about an uninitialized variable in
boost::optional:

In file included from ../src/rgw/rgw_common.h:1508,
                 from ../src/rgw/rgw_main.cc:18:
../src/rgw/rgw_auth.h: In member function ‘virtual rgw::auth::swift::DefaultStrategy::aplptr_t rgw::auth::swift::DefaultStrategy::_ZThn56_NK3rgw4auth5swift15D
efaultStrategy15create_apl_turlEPN4ceph6common11CephContextEPK9req_stateRK11RGWUserInfo(ceph::common::CephContext*, const req_state*, const RGWUserInfo&) cons
t’:
../src/rgw/rgw_auth.h:652:38: warning: ‘<unnamed>.boost::optional<unsigned int>::<unnamed>.boost::optional_detail::tc_optional_base<unsigned int>::m_storage’
may be used uninitialized [-Wmaybe-uninitialized]
  652 |       this->perm_mask = perm_mask.get();
      |                         ~~~~~~~~~~~~~^~
In file included from ../src/rgw/rgw_rest_swift.h:14,
                 from ../src/rgw/rgw_main.cc:24:
../src/rgw/rgw_swift_auth.h:27:73: note: ‘<anonymous>’ declared here
   27 |     : LocalApplier(cct, user_info, LocalApplier::NO_SUBUSER, boost::none) {
      |

Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_auth.cc
src/rgw/rgw_auth.h
src/rgw/rgw_auth_s3.h
src/rgw/rgw_rest_s3.cc
src/rgw/rgw_swift_auth.cc
src/rgw/rgw_swift_auth.h

index 78d9ee5272b8fb59343be4fe9e9f5a81b2fcb6ae..dfb338818d733b79b23b759601d0f5cd347e8734 100644 (file)
@@ -911,7 +911,7 @@ rgw::auth::AnonymousEngine::authenticate(const DoutPrefixProvider* dpp, const re
     auto apl = \
       apl_factory->create_apl_local(cct, s, user_info,
                                     rgw::auth::LocalApplier::NO_SUBUSER,
-                                    boost::none);
+                                    std::nullopt);
     return result_t::grant(std::move(apl));
   }
 }
index c31e734a17bb3cecc53c3c7f57f2a5a4bb081a62..db343649cc3d09a5ff72a8e53a85e81e326104d2 100644 (file)
@@ -6,6 +6,7 @@
 #define CEPH_RGW_AUTH_H
 
 #include <functional>
+#include <optional>
 #include <ostream>
 #include <type_traits>
 #include <system_error>
@@ -645,14 +646,10 @@ public:
   LocalApplier(CephContext* const cct,
                const RGWUserInfo& user_info,
                std::string subuser,
-               const boost::optional<uint32_t>& perm_mask)
+               const std::optional<uint32_t>& perm_mask)
     : user_info(user_info),
-      subuser(std::move(subuser)) {
-    if (perm_mask) {
-      this->perm_mask = perm_mask.get();
-    } else {
-      this->perm_mask = RGW_PERM_INVALID;
-    }
+      subuser(std::move(subuser)),
+      perm_mask(perm_mask.value_or(RGW_PERM_INVALID)) {
   }
 
 
@@ -679,7 +676,7 @@ public:
                                       const req_state* s,
                                       const RGWUserInfo& user_info,
                                       const std::string& subuser,
-                                      const boost::optional<uint32_t>& perm_mask) const = 0;
+                                      const std::optional<uint32_t>& perm_mask) const = 0;
     };
 };
 
index ff28a27fb6d3350b03fa476ed9bc4d80a7433ee3..edec31a3c6b1382fc6dc3e4dc4144a5bbca8949d 100644 (file)
@@ -56,7 +56,7 @@ class STSAuthStrategy : public rgw::auth::Strategy,
                             const req_state* const s,
                             const RGWUserInfo& user_info,
                             const std::string& subuser,
-                            const boost::optional<uint32_t>& perm_mask) const override {
+                            const std::optional<uint32_t>& perm_mask) const override {
     auto apl = rgw::auth::add_sysreq(cct, store, s,
       rgw::auth::LocalApplier(cct, user_info, subuser, perm_mask));
     return aplptr_t(new decltype(apl)(std::move(apl)));
@@ -174,7 +174,7 @@ class AWSAuthStrategy : public rgw::auth::Strategy,
                             const req_state* const s,
                             const RGWUserInfo& user_info,
                             const std::string& subuser,
-                            const boost::optional<uint32_t>& perm_mask) const override {
+                            const std::optional<uint32_t>& perm_mask) const override {
     auto apl = rgw::auth::add_sysreq(cct, store, s,
       rgw::auth::LocalApplier(cct, user_info, subuser, perm_mask));
     /* TODO(rzarzynski): replace with static_ptr. */
index 73f3ed5729a3f0bab8dc01b19c5d06a54115a38b..a02ca472ebc48a88ead3250fc02e4b9455e2860b 100644 (file)
@@ -5926,7 +5926,8 @@ rgw::auth::s3::LocalEngine::authenticate(
     return result_t::deny(-ERR_SIGNATURE_NO_MATCH);
   }
 
-  auto apl = apl_factory->create_apl_local(cct, s, user->get_info(), k.subuser, boost::none);
+  auto apl = apl_factory->create_apl_local(cct, s, user->get_info(),
+                                           k.subuser, std::nullopt);
   return result_t::grant(std::move(apl), completer_factory(k.key));
 }
 
index 3791e7d9214b7093b7a3e5b119e3a2edfe032243..c34ee221edff3952f0e238cbc9368fbe635688ee 100644 (file)
@@ -461,7 +461,7 @@ ExternalTokenEngine::authenticate(const DoutPrefixProvider* dpp,
 
   auto apl = apl_factory->create_apl_local(cct, s, user->get_info(),
                                            extract_swift_subuser(swift_user),
-                                           boost::none);
+                                           std::nullopt);
   return result_t::grant(std::move(apl));
 }
 
@@ -615,7 +615,7 @@ SignedTokenEngine::authenticate(const DoutPrefixProvider* dpp,
 
   auto apl = apl_factory->create_apl_local(cct, s, user->get_info(),
                                            extract_swift_subuser(swift_user),
-                                           boost::none);
+                                           std::nullopt);
   return result_t::grant(std::move(apl));
 }
 
index 13dc1b63a569d6ce1c8e7666cda683f5dc839865..166a2ad793e8c043c6dde30b2b4d6cbe35425237 100644 (file)
@@ -24,7 +24,7 @@ class TempURLApplier : public rgw::auth::LocalApplier {
 public:
   TempURLApplier(CephContext* const cct,
                  const RGWUserInfo& user_info)
-    : LocalApplier(cct, user_info, LocalApplier::NO_SUBUSER, boost::none) {
+    : LocalApplier(cct, user_info, LocalApplier::NO_SUBUSER, std::nullopt) {
   };
 
   void modify_request_state(const DoutPrefixProvider* dpp, req_state * s) const override; /* in/out */
@@ -153,8 +153,8 @@ class SwiftAnonymousApplier : public rgw::auth::LocalApplier {
   public:
     SwiftAnonymousApplier(CephContext* const cct,
                           const RGWUserInfo& user_info)
-      : LocalApplier(cct, user_info, LocalApplier::NO_SUBUSER, boost::none) {
-      };
+      : LocalApplier(cct, user_info, LocalApplier::NO_SUBUSER, std::nullopt) {
+    }
     bool is_admin_of(const rgw_user& uid) const {return false;}
     bool is_owner_of(const rgw_user& uid) const {return uid.id.compare(RGW_USER_ANON_ID) == 0;}
 };
@@ -225,7 +225,7 @@ class DefaultStrategy : public rgw::auth::Strategy,
                             const req_state* const s,
                             const RGWUserInfo& user_info,
                             const std::string& subuser,
-                            const boost::optional<uint32_t>& perm_mask) const override {
+                            const std::optional<uint32_t>& perm_mask) const override {
     auto apl = \
       rgw::auth::add_3rdparty(store, rgw_user(s->account_name),
         rgw::auth::add_sysreq(cct, store, s,