liblog: do not allow loggers to write to binary buffers
Do not write to binary buffers, this was already done for logd,
but wasn't explicitly done for other loggers, so do that too.
Test: unit tests
Change-Id: Ia36e0d2e1b6c833780239a5ef459abea99bc4a1f
diff --git a/liblog/logger_write.cpp b/liblog/logger_write.cpp
index 3ee705b..cf82e0f 100644
--- a/liblog/logger_write.cpp
+++ b/liblog/logger_write.cpp
@@ -307,6 +307,12 @@
void __android_log_write_logger_data(__android_logger_data* logger_data, const char* msg) {
ErrnoRestorer errno_restorer;
+ if (logger_data->buffer_id != LOG_ID_DEFAULT && logger_data->buffer_id != LOG_ID_MAIN &&
+ logger_data->buffer_id != LOG_ID_SYSTEM && logger_data->buffer_id != LOG_ID_RADIO &&
+ logger_data->buffer_id != LOG_ID_CRASH) {
+ return;
+ }
+
auto tag_lock = std::shared_lock{default_tag_lock, std::defer_lock};
if (logger_data->tag == nullptr) {
tag_lock.lock();