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
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user