From: Hwankyu Jhun Date: Thu, 21 Mar 2019 08:05:10 +0000 (+0900) Subject: Check file descriptor X-Git-Tag: submit/tizen/20190322.022720~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bda39552b64f688e669f60d2717a985b34c039d8;p=platform%2Fcore%2Fappfw%2Frpc-port.git Check file descriptor Change-Id: Ib85fc88e9ea048db18ab2992f3c528ebdfc6ad3d Signed-off-by: Hwankyu Jhun --- diff --git a/src/port-internal.cc b/src/port-internal.cc index daa11ce..264fa16 100644 --- a/src/port-internal.cc +++ b/src/port-internal.cc @@ -68,6 +68,11 @@ int Port::Read(void* buf, unsigned int size) { int max_timeout = MAX_CNT * MAX_SLEEP; /* 10 sec */ std::lock_guard lock(mutex_); + if (fd_ < 0 || fd_ >= sysconf(_SC_OPEN_MAX)) { + LOGE("Invalid fd(%d)", fd_); + return RPC_PORT_ERROR_IO_ERROR; + } + while (left) { nb = read(fd_, buffer, left); if (nb == 0) { @@ -114,6 +119,11 @@ int Port::Write(const void* buf, unsigned int size) { struct timespec end_time = { 0, }; std::lock_guard lock(mutex_); + if (fd_ < 0 || fd_ >= sysconf(_SC_OPEN_MAX)) { + LOGE("Invalid fd(%d)", fd_); + return RPC_PORT_ERROR_IO_ERROR; + } + fds[0].fd = fd_; fds[0].events = POLLOUT; fds[0].revents = 0;