summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2021-02-15 07:56:18 +0900
committerHwankyu Jhun <h.jhun@samsung.com>2021-02-15 07:56:18 +0900
commitc34ea6b5c4ac777706691aa96c2c28654dbe401a (patch)
treeabd616a07e05f9a3bee6c4a5504625d510902cb9
parent201fefa12fecc71fdf8493e83ef9d6659747a1e6 (diff)
downloadlaunchpad-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.c13
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;
}