Enforce variable init
There were a few places we weren't initting our variables per cpp core
guidelines. Fix all of them, and enable checks for this.
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Iba09924beb9fb26f597ff94d1cecbd6d6b1af912
diff --git a/.clang-tidy b/.clang-tidy
index eae3c72..311617b 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -202,7 +202,9 @@
clang-analyzer-webkit.NoUncountedMemberChecker,
clang-analyzer-webkit.RefCntblBaseVirtualDtor,
cppcoreguidelines-init-variables,
+cppcoreguidelines-interfaces-global-init,
cppcoreguidelines-pro-bounds-pointer-arithmetic,
+cppcoreguidelines-pro-type-member-init,
cppcoreguidelines-pro-type-reinterpret-cast,
cppcoreguidelines-special-member-functions,
misc-misplaced-const,
diff --git a/include/multipart_parser.hpp b/include/multipart_parser.hpp
index e385558..ee028f1 100644
--- a/include/multipart_parser.hpp
+++ b/include/multipart_parser.hpp
@@ -337,10 +337,10 @@
static constexpr char hyphen = '-';
static constexpr char colon = ':';
- std::array<bool, 256> boundaryIndex;
+ std::array<bool, 256> boundaryIndex{};
std::string lookbehind;
- State state;
- Boundary flags;
+ State state{State::START};
+ Boundary flags{Boundary::NON_BOUNDARY};
size_t index = 0;
size_t partDataMark = 0;
size_t headerFieldMark = 0;
diff --git a/include/sessions.hpp b/include/sessions.hpp
index 79e71ce..b445915 100644
--- a/include/sessions.hpp
+++ b/include/sessions.hpp
@@ -46,7 +46,7 @@
std::string clientId;
std::string clientIp;
std::chrono::time_point<std::chrono::steady_clock> lastUpdated;
- PersistenceType persistence;
+ PersistenceType persistence{PersistenceType::TIMEOUT};
bool cookieAuth = false;
bool isConfigureSelfOnly = false;
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index 7cb5cc7..ee402b6 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -564,9 +564,9 @@
class EventServiceManager
{
private:
- bool serviceEnabled;
- uint32_t retryAttempts;
- uint32_t retryTimeoutInterval;
+ bool serviceEnabled = false;
+ uint32_t retryAttempts = 0;
+ uint32_t retryTimeoutInterval = 0;
EventServiceManager()
{
@@ -1189,7 +1189,8 @@
std::size_t index = 0;
while ((index + iEventSize) <= bytesTransferred)
{
- struct inotify_event event;
+ struct inotify_event event
+ {};
std::memcpy(&event, &readBuffer[index], iEventSize);
if (event.wd == dirWatchDesc)
{
diff --git a/redfish-core/include/utils/systemd_utils.hpp b/redfish-core/include/utils/systemd_utils.hpp
index 75bbe35..ad157dc 100644
--- a/redfish-core/include/utils/systemd_utils.hpp
+++ b/redfish-core/include/utils/systemd_utils.hpp
@@ -39,7 +39,7 @@
if (sd_id128_get_machine_app_specific(appId, &machineId) == 0)
{
- std::array<char, SD_ID128_STRING_MAX> str;
+ std::array<char, SD_ID128_STRING_MAX> str{};
ret = sd_id128_to_string(machineId, str.data());
ret.insert(8, 1, '-');
ret.insert(13, 1, '-');
diff --git a/redfish-core/lib/network_protocol.hpp b/redfish-core/lib/network_protocol.hpp
index 41b14f8..61c3c68 100644
--- a/redfish-core/lib/network_protocol.hpp
+++ b/redfish-core/lib/network_protocol.hpp
@@ -358,7 +358,7 @@
{
std::string hostName;
- std::array<char, HOST_NAME_MAX> hostNameCStr;
+ std::array<char, HOST_NAME_MAX> hostNameCStr{};
if (gethostname(hostNameCStr.data(), hostNameCStr.size()) == 0)
{
hostName = hostNameCStr.data();