monitor: request-handler: Handle negative return value of recv 55/272155/1
authorDongwoo Lee <dwoo08.lee@samsung.com>
Thu, 10 Mar 2022 07:44:39 +0000 (16:44 +0900)
committerDongwoo Lee <dwoo08.lee@samsung.com>
Thu, 10 Mar 2022 08:02:12 +0000 (17:02 +0900)
Change-Id: I4a84b3f834fbc4f036f28597aa34f0bceb9d6c5c
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
src/monitor/request-handler.c

index c27e544..2fdd58a 100644 (file)
@@ -306,15 +306,21 @@ static int request_handler_func(void *data, void **result)
                len = recv(client->socket_fd, buffer, REQUEST_BUFFER_MAX, 0);
                if (len == 0) {
                        _D("Client-%d is disconnected", client->socket_fd);
-                       finalize_request_client(client);
-                       close(client->socket_fd);
-                       destroy_request_client(client);
-                       return THREAD_RETURN_DONE;
+                       goto out;
+               }
+
+               if (len < 0) {
+                       _E("Error occurs while receiving request: %s", strerror(errno));
+                       goto out;
                }
 
                buffer[len] = '\0';
                handle_request(client, buffer);
        }
+out:
+       finalize_request_client(client);
+       close(client->socket_fd);
+       destroy_request_client(client);
 
        return THREAD_RETURN_DONE;
 }