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

Commit b0e5079b authored by Nick Kralevich's avatar Nick Kralevich
Browse files

LocalSocketImpl.cpp: Set O_CLOEXEC on received FDs

Set O_CLOEXEC on received file descriptors. This prevents FD leakage
across an exec boundary. Please see the description of O_CLOEXEC in "man
2 open" for the reasons why this is useful.

Test: Device boots and no observed errors.
Change-Id: Id0d9c9d71efb25dacb26d5d98d93fc3b72c1b6ae
parent 1e814b39
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -202,9 +202,7 @@ static ssize_t socket_read_all(JNIEnv *env, jobject thisJ, int fd,
    msg.msg_control = cmsgbuf;
    msg.msg_controllen = sizeof(cmsgbuf);

    do {
        ret = recvmsg(fd, &msg, MSG_NOSIGNAL);
    } while (ret < 0 && errno == EINTR);
    ret = TEMP_FAILURE_RETRY(recvmsg(fd, &msg, MSG_NOSIGNAL | MSG_CMSG_CLOEXEC));

    if (ret < 0 && errno == EPIPE) {
        // Treat this as an end of stream