Enable bugprone widening checks in clang

Most of the errors we hit are simply places we need to explicitly
increase the width of the integer.  Luckily, these are few and far
between.

Tested: Code compiles, unit tests pass.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I617d87f3970ae773e0767bb2f20118fca2e71daa
diff --git a/.clang-tidy b/.clang-tidy
index 3e9d87b..15ade7f 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -12,6 +12,7 @@
 bugprone-fold-init-type,
 bugprone-forward-declaration-namespace,
 bugprone-forwarding-reference-overload,
+bugprone-implicit-widening-of-multiplication-result,
 bugprone-inaccurate-erase,
 bugprone-incorrect-roundings,
 bugprone-infinite-loop,
diff --git a/http/http_connection.hpp b/http/http_connection.hpp
index 0f20761..6de2bf7 100644
--- a/http/http_connection.hpp
+++ b/http/http_connection.hpp
@@ -38,8 +38,8 @@
 static int connectionCount = 0;
 
 // request body limit size set by the bmcwebHttpReqBodyLimitMb option
-constexpr unsigned int httpReqBodyLimit =
-    1024 * 1024 * bmcwebHttpReqBodyLimitMb;
+constexpr uint64_t httpReqBodyLimit =
+    1024UL * 1024UL * bmcwebHttpReqBodyLimitMb;
 
 constexpr uint64_t loggedOutPostBodyLimit = 4096;
 
diff --git a/include/kvm_websocket.hpp b/include/kvm_websocket.hpp
index a9dc8ea..51246aa 100644
--- a/include/kvm_websocket.hpp
+++ b/include/kvm_websocket.hpp
@@ -145,8 +145,8 @@
 
     crow::websocket::Connection& conn;
     boost::asio::ip::tcp::socket hostSocket;
-    boost::beast::flat_static_buffer<1024U * 50U> outputBuffer;
-    boost::beast::flat_static_buffer<1024U> inputBuffer;
+    boost::beast::flat_static_buffer<1024UL * 50UL> outputBuffer;
+    boost::beast::flat_static_buffer<1024UL> inputBuffer;
     bool doingWrite;
 };
 
diff --git a/redfish-core/include/utils/time_utils.hpp b/redfish-core/include/utils/time_utils.hpp
index d4c65de..0df6416 100644
--- a/redfish-core/include/utils/time_utils.hpp
+++ b/redfish-core/include/utils/time_utils.hpp
@@ -18,7 +18,8 @@
 namespace details
 {
 
-using Days = std::chrono::duration<long long, std::ratio<24 * 60 * 60>>;
+constexpr intmax_t dayDuration = static_cast<intmax_t>(24 * 60 * 60);
+using Days = std::chrono::duration<long long, std::ratio<dayDuration>>;
 
 inline void leftZeroPadding(std::string& str, const std::size_t padding)
 {