Check sockets received from services 15/252815/3
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Tue, 2 Feb 2021 10:07:42 +0000 (11:07 +0100)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Wed, 3 Feb 2021 13:17:07 +0000 (14:17 +0100)
Change-Id: Ibb4b79a9e4e1c36223409c695c58c40f695e538c

src/manager/main/socket-manager.cpp

index ceb3834..a7ea5b4 100644 (file)
@@ -714,6 +714,12 @@ void SocketManager::ProcessQueue()
 
 void SocketManager::Handle(const WriteEvent &event)
 {
+       if (event.connectionID.sock >= static_cast<int>(m_socketDescriptionVector.size())) {
+               LogError("Invalid socket received: " << event.connectionID.sock << ", counter: " <<
+                        event.connectionID.counter << ". Event ignored!");
+               return;
+       }
+
        auto &desc = m_socketDescriptionVector[event.connectionID.sock];
 
        if (!desc.isOpen()) {
@@ -736,6 +742,12 @@ void SocketManager::Handle(const WriteEvent &event)
 
 void SocketManager::Handle(const CloseEvent &event)
 {
+       if (event.sock >= static_cast<int>(m_socketDescriptionVector.size())) {
+               LogError("Invalid socket received: "<< event.sock << ", counter: " << event.counter <<
+                        ". Event ignored!");
+               return;
+       }
+
        if (!m_socketDescriptionVector[event.sock].isOpen())
                return;
 
@@ -747,6 +759,12 @@ void SocketManager::Handle(const CloseEvent &event)
 
 void SocketManager::Handle(const SecurityEvent &event)
 {
+       if (event.sock >= static_cast<int>(m_socketDescriptionVector.size())) {
+               LogError("Invalid socket received: " << event.sock << ", counter: " << event.counter <<
+                        ". Event ignored!");
+               return;
+       }
+
        auto &desc = m_socketDescriptionVector[event.sock];
 
        if (!desc.isOpen())