Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44f85ee1 authored by Steven Moreland's avatar Steven Moreland Committed by Automerger Merge Worker
Browse files

Merge "libbinder: RPC avoid SIGPIPE" am: 876a646e

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1663085

Change-Id: I42e34f1245e106f0bbe79e8c6f50245af42c5290
parents 542e555b 876a646e
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -192,7 +192,7 @@ bool RpcState::rpcSend(const base::unique_fd& fd, const char* what, const void*
        return false;
        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)) {
    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,
        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;
        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)) {
    if (recd < 0 || recd != static_cast<ssize_t>(size)) {
        terminate();
        terminate();
+0 −3
Original line number Original line Diff line number Diff line
@@ -774,9 +774,6 @@ TEST_P(BinderRpc, OnewayCallQueueing) {
}
}


TEST_P(BinderRpc, Die) {
TEST_P(BinderRpc, Die) {
    // TODO(b/183141167): handle this in library
    signal(SIGPIPE, SIG_IGN);

    for (bool doDeathCleanup : {true, false}) {
    for (bool doDeathCleanup : {true, false}) {
        auto proc = createRpcTestSocketServerProcess(1);
        auto proc = createRpcTestSocketServerProcess(1);