From 34d7bd98adc080041202cceec4626fd88b4b6e88 Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Wed, 17 Jun 2020 09:23:14 -0700 Subject: [PATCH] liblog: fix reading pmsg d3ecc66b9c "liblog: support extended logger_entry headers" removed the logger_entry::msg variable and instead uses hdr_size as an offset from logger_entry to where the message starts in parent log_msg buffer. In pmsg, hdr_size is not recorded and therefore uninitialized when it was referenced, causing corruption when reading last logcat. This change uses sizeof(log_msg->entry) instead. Bug: 158263230 Test: last logcat works Change-Id: Ic01e73bf4d8ba8419cc770138565aa1210a6078b --- liblog/pmsg_reader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/liblog/pmsg_reader.cpp b/liblog/pmsg_reader.cpp index 0e39aab14..564090087 100644 --- a/liblog/pmsg_reader.cpp +++ b/liblog/pmsg_reader.cpp @@ -96,7 +96,7 @@ int PmsgRead(struct logger_list* logger_list, struct log_msg* log_msg) { ((logger_list->start.tv_sec != buf.l.realtime.tv_sec) || (logger_list->start.tv_nsec <= buf.l.realtime.tv_nsec)))) && (!logger_list->pid || (logger_list->pid == buf.p.pid))) { - char* msg = reinterpret_cast(&log_msg->entry) + log_msg->entry.hdr_size; + char* msg = reinterpret_cast(&log_msg->entry) + sizeof(log_msg->entry); *msg = buf.prio; fd = atomic_load(&logger_list->fd); if (fd <= 0) {