diff options
| -rw-r--r-- | libs/binder/RpcState.cpp | 4 | ||||
| -rw-r--r-- | libs/binder/tests/binderRpcTest.cpp | 3 |
2 files changed, 2 insertions, 5 deletions
diff --git a/libs/binder/RpcState.cpp b/libs/binder/RpcState.cpp index 64e842e927..3b3adca34f 100644 --- a/libs/binder/RpcState.cpp +++ b/libs/binder/RpcState.cpp @@ -192,7 +192,7 @@ bool RpcState::rpcSend(const base::unique_fd& fd, const char* what, const void* return false; } - ssize_t sent = TEMP_FAILURE_RETRY(send(fd.get(), data, size, 0)); + ssize_t sent = TEMP_FAILURE_RETRY(send(fd.get(), data, size, MSG_NOSIGNAL)); if (sent < 0 || sent != static_cast<ssize_t>(size)) { ALOGE("Failed to send %s (sent %zd of %zu bytes) on fd %d, error: %s", what, sent, size, @@ -212,7 +212,7 @@ bool RpcState::rpcRec(const base::unique_fd& fd, const char* what, void* data, s return false; } - ssize_t recd = TEMP_FAILURE_RETRY(recv(fd.get(), data, size, MSG_WAITALL)); + ssize_t recd = TEMP_FAILURE_RETRY(recv(fd.get(), data, size, MSG_WAITALL | MSG_NOSIGNAL)); if (recd < 0 || recd != static_cast<ssize_t>(size)) { terminate(); diff --git a/libs/binder/tests/binderRpcTest.cpp b/libs/binder/tests/binderRpcTest.cpp index 27f18df096..5f68a25f74 100644 --- a/libs/binder/tests/binderRpcTest.cpp +++ b/libs/binder/tests/binderRpcTest.cpp @@ -774,9 +774,6 @@ TEST_P(BinderRpc, OnewayCallQueueing) { } TEST_P(BinderRpc, Die) { - // TODO(b/183141167): handle this in library - signal(SIGPIPE, SIG_IGN); - for (bool doDeathCleanup : {true, false}) { auto proc = createRpcTestSocketServerProcess(1); |