diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 7a63162..233578e 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -902,9 +902,10 @@
                         }
                         entriesArray.push_back({});
                         nlohmann::json &thisEntry = entriesArray.back();
-                        uint32_t *id;
-                        std::time_t timestamp;
-                        std::string *severity, *message;
+                        uint32_t *id = nullptr;
+                        std::time_t timestamp{};
+                        std::string *severity = nullptr;
+                        std::string *message = nullptr;
                         for (auto &propertyMap : interfaceMap.second)
                         {
                             if (propertyMap.first == "Id")
@@ -1028,9 +1029,10 @@
                     messages::internalError(asyncResp->res);
                     return;
                 }
-                uint32_t *id;
-                std::time_t timestamp;
-                std::string *severity, *message;
+                uint32_t *id = nullptr;
+                std::time_t timestamp{};
+                std::string *severity = nullptr;
+                std::string *message = nullptr;
                 for (auto &propertyMap : resp)
                 {
                     if (propertyMap.first == "Id")
diff --git a/redfish-core/lib/roles.hpp b/redfish-core/lib/roles.hpp
index fbe8653..782d23c 100644
--- a/redfish-core/lib/roles.hpp
+++ b/redfish-core/lib/roles.hpp
@@ -160,6 +160,11 @@
                 memberArray = nlohmann::json::array();
                 const std::vector<std::string>* privList =
                     std::get_if<std::vector<std::string>>(&resp);
+                if (privList == nullptr)
+                {
+                    messages::internalError(asyncResp->res);
+                    return;
+                }
                 for (const std::string& priv : *privList)
                 {
                     std::string role = getRoleFromPrivileges(priv);
