mirror of
https://github.com/chromium/crashpad.git
synced 2025-03-09 14:06:33 +00:00
linux: silence logs on client disconnect
When all Crashpad clients have closed their crash handling sockets, the handler's recvmsg() returns 0 and doesn't include any credentials. Silence error logs for this normally occurring case. Change-Id: I56acf3b38c8e95a9bbaa9bff04e0a6859a194e66 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1816286 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Joshua Peraza <jperaza@chromium.org>
This commit is contained in:
parent
c405d0ea2c
commit
eff0680c13
@ -168,17 +168,17 @@ bool UnixCredentialSocket::RecvMsg(int fd,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Credentials are missing from the message either when the recv socket wasn't
|
||||||
|
// configured with SO_PASSCRED or when all sending sockets have been closed.
|
||||||
|
// In the latter case, res == 0. This case is also indistinguishable from an
|
||||||
|
// empty message sent to a recv socket which hasn't set SO_PASSCRED.
|
||||||
if (!local_creds) {
|
if (!local_creds) {
|
||||||
LOG(ERROR) << "missing credentials";
|
LOG_IF(ERROR, res != 0) << "missing credentials";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// res == 0 may also indicate that the sending socket disconnected, but in
|
|
||||||
// that case, the message will also have missing or invalid credentials.
|
|
||||||
if (static_cast<size_t>(res) != buf_size) {
|
if (static_cast<size_t>(res) != buf_size) {
|
||||||
if (res != 0 || (local_creds && local_creds->pid != 0)) {
|
LOG(ERROR) << "incorrect payload size " << res;
|
||||||
LOG(ERROR) << "incorrect payload size " << res;
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +76,11 @@ class UnixCredentialSocket {
|
|||||||
//! \param[out] creds The credentials of the sender.
|
//! \param[out] creds The credentials of the sender.
|
||||||
//! \param[out] fds The recieved file descriptors. Optional. If `nullptr`, all
|
//! \param[out] fds The recieved file descriptors. Optional. If `nullptr`, all
|
||||||
//! received file descriptors will be closed.
|
//! received file descriptors will be closed.
|
||||||
//! \return `true` on success. Otherwise, `false`, with a message logged.
|
//! \return `true` on success. Otherwise, `false`, with a message logged. No
|
||||||
|
//! message will be logged if the message was detected to be an EOF
|
||||||
|
//! condition triggered by all clients disconnecting. This case is
|
||||||
|
//! indistinguishable from misuses of this interface that haven't set
|
||||||
|
//! `SO_PASSCRED` on \a fd.
|
||||||
static bool RecvMsg(int fd,
|
static bool RecvMsg(int fd,
|
||||||
void* buf,
|
void* buf,
|
||||||
size_t buf_size,
|
size_t buf_size,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user