Add exception check
[platform/framework/native/channel-service.git] / src / IpcServer.cpp
index 9f17eeb..93074cf 100644 (file)
@@ -231,7 +231,7 @@ IpcServer::Construct(const String& name, const IIpcServerEventListener& listener
        SysTryCatch(NID_IO, ret == 0, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to change permission of a socket(%d, %s): %s", serverSocket,
                           socketName.c_str(), strerror(errno));
 
-       ret = listen(serverSocket, 15);
+       ret = listen(serverSocket, 128);
        SysTryCatch(NID_IO, ret == 0, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to listen a socket(%d, %s): %s", serverSocket,
                           socketName.c_str(), strerror(errno));
 
@@ -303,6 +303,7 @@ IpcServer::OnConnectionRequest(GIOChannel* source, GIOCondition condition, gpoin
        _ChannelInfo* pChannelInfo = null;
        GSource* pGSource = null;
        GIOChannel* pChannel = null;
+       ssize_t readBytes = 0;
 
        int server = -1;
        int client = -1;
@@ -317,7 +318,9 @@ IpcServer::OnConnectionRequest(GIOChannel* source, GIOCondition condition, gpoin
        client = accept(server, (struct sockaddr*) &clientAddress, &clientLen);
        SysTryCatch(NID_IO, client != -1, , E_SYSTEM, "[E_SYSTEM] Accept failed.");
 
-       read(client, &helloMessage, sizeof(helloMessage));
+       readBytes = read(client, &helloMessage, sizeof(helloMessage));
+       SysTryCatch(NID_IO, readBytes >= 0, , E_SYSTEM, "[E_SYSTEM] Failed to receive hello message (%d, %s).",
+                       errno, strerror(errno));
 
        pChannel = g_io_channel_unix_new(client);
        SysTryCatch(NID_IO, pChannel != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Not enough memory.");
@@ -694,6 +697,8 @@ IpcServer::Send(IPC::Message* msg)
                // empty statement;
        }
 
+       delete msg;
+
        return true;
 }