diff options
author | Hwankyu Jhun <h.jhun@samsung.com> | 2021-02-15 07:56:18 +0900 |
---|---|---|
committer | Hwankyu Jhun <h.jhun@samsung.com> | 2021-02-15 07:56:18 +0900 |
commit | c34ea6b5c4ac777706691aa96c2c28654dbe401a (patch) | |
tree | abd616a07e05f9a3bee6c4a5504625d510902cb9 | |
parent | 201fefa12fecc71fdf8493e83ef9d6659747a1e6 (diff) | |
download | launchpad-c34ea6b5c4ac777706691aa96c2c28654dbe401a.tar.gz launchpad-c34ea6b5c4ac777706691aa96c2c28654dbe401a.tar.bz2 launchpad-c34ea6b5c4ac777706691aa96c2c28654dbe401a.zip |
Check EOF exception
When a socket peer has performed an orderly shutdown, recv() returns 0.
Change-Id: Ie93b44f2e4682403def921e68de371aba25075a6
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r-- | src/lib/common/src/launchpad_common.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lib/common/src/launchpad_common.c b/src/lib/common/src/launchpad_common.c index 6e370ef..d4e0622 100644 --- a/src/lib/common/src/launchpad_common.c +++ b/src/lib/common/src/launchpad_common.c @@ -359,9 +359,10 @@ app_pkt_t *_recv_pkt_raw(int fd) retry_recv: /* receive header(cmd, datalen) */ len = recv(fd, buf, AUL_PKT_HEADER_SIZE, 0); - if (len < 0) + if (len < 0) { if (errno == EINTR) goto retry_recv; + } if (len < AUL_PKT_HEADER_SIZE) { _E("recv error"); @@ -389,8 +390,16 @@ retry_recv: len = 0; while (len != pkt->len) { ret = recv(fd, pkt->data + len, pkt->len - len, 0); + if (ret == 0) { + _E("EOF. fd(%d), len(%d), pkt->len(%d)", + fd, len, pkt->len); + free(pkt); + return NULL; + } + if (ret < 0) { - _E("recv error %d %d", len, pkt->len); + _E("recv() is failed. fd(%d), len(%d), pkt->len(%d)", + fd, len, pkt->len); free(pkt); return NULL; } |