From 64458c79cdd86df1fdf72e0710b672a001e7d036 Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Tue, 15 Oct 2019 15:10:26 -0700 Subject: [PATCH] logd: always report the UID of a log message logd currently only reports the UID of a log message for 'privileged' readers (those with a uid or gid of root, system, or log). However, UIDs are not particularly sensitive. Much more importantly, non-privileged readers can only see less messages from their own UID, so this restriction is essentially a no-op, as those readers will already know their own uid. Test: liblog and logd unit tests Change-Id: I9da7d15eb840ba3200128391e70d618eec79f988 --- logd/LogBuffer.cpp | 2 +- logd/LogBufferElement.cpp | 10 +++------- logd/LogBufferElement.h | 8 ++------ 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/logd/LogBuffer.cpp b/logd/LogBuffer.cpp index 9cbc7c41a..ba05a064f 100644 --- a/logd/LogBuffer.cpp +++ b/logd/LogBuffer.cpp @@ -1185,7 +1185,7 @@ log_time LogBuffer::flushTo(SocketClient* reader, const log_time& start, unlock(); // range locking in LastLogTimes looks after us - curr = element->flushTo(reader, this, privileged, sameTid); + curr = element->flushTo(reader, this, sameTid); if (curr == element->FLUSH_ERROR) { return curr; diff --git a/logd/LogBufferElement.cpp b/logd/LogBufferElement.cpp index 82c4fb978..5c43e18c7 100644 --- a/logd/LogBufferElement.cpp +++ b/logd/LogBufferElement.cpp @@ -244,14 +244,10 @@ size_t LogBufferElement::populateDroppedMessage(char*& buffer, LogBuffer* parent return retval; } -log_time LogBufferElement::flushTo(SocketClient* reader, LogBuffer* parent, - bool privileged, bool lastSame) { - struct logger_entry_v4 entry; +log_time LogBufferElement::flushTo(SocketClient* reader, LogBuffer* parent, bool lastSame) { + struct logger_entry_v4 entry = {}; - memset(&entry, 0, sizeof(struct logger_entry_v4)); - - entry.hdr_size = privileged ? sizeof(struct logger_entry_v4) - : sizeof(struct logger_entry_v3); + entry.hdr_size = sizeof(struct logger_entry_v4); entry.lid = mLogId; entry.pid = mPid; entry.tid = mTid; diff --git a/logd/LogBufferElement.h b/logd/LogBufferElement.h index da4991b28..fd790e4be 100644 --- a/logd/LogBufferElement.h +++ b/logd/LogBufferElement.h @@ -14,8 +14,7 @@ * limitations under the License. */ -#ifndef _LOGD_LOG_BUFFER_ELEMENT_H__ -#define _LOGD_LOG_BUFFER_ELEMENT_H__ +#pragma once #include #include @@ -96,8 +95,5 @@ class __attribute__((packed)) LogBufferElement { } static const log_time FLUSH_ERROR; - log_time flushTo(SocketClient* writer, LogBuffer* parent, bool privileged, - bool lastSame); + log_time flushTo(SocketClient* writer, LogBuffer* parent, bool lastSame); }; - -#endif