bmcweb: fix a possible buffer overflow issue

This commit fixes a possible buffer overflow that could occur if dbus
paths don't follow the dbus specification.

Change-Id: Ib3c5d4743b1ac7f65a480a88613267ec0b4b7c2b
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index e4d5798..74638bb 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -21,6 +21,7 @@
 
 namespace redfish
 {
+
 static std::unique_ptr<sdbusplus::bus::match::match> fwUpdateMatcher;
 
 class UpdateService : public Node
@@ -233,15 +234,13 @@
                         &connections = obj.second;
 
                     // if can't parse fw id then return
-                    std::size_t idPos = obj.first.rfind("/");
-                    if (idPos == std::string::npos ||
-                        idPos + 1 == obj.first.size())
+                    std::size_t idPos;
+                    if ((idPos = obj.first.rfind("/")) == std::string::npos)
                     {
                         messages::internalError(asyncResp->res);
                         BMCWEB_LOG_DEBUG << "Can't parse firmware ID!!";
                         return;
                     }
-
                     std::string swId = obj.first.substr(idPos + 1);
 
                     for (auto &conn : connections)