Merge "liblog: accept log messages with hdr_size greater than known headers"
diff --git a/liblog/include/log/log_read.h b/liblog/include/log/log_read.h
index ee3b250..6601072 100644
--- a/liblog/include/log/log_read.h
+++ b/liblog/include/log/log_read.h
@@ -114,7 +114,7 @@
   }
   char* msg() {
     unsigned short hdr_size = entry.hdr_size;
-    if (hdr_size != sizeof(entry)) {
+    if (hdr_size >= sizeof(struct log_msg) - sizeof(entry)) {
       return nullptr;
     }
     return reinterpret_cast<char*>(buf) + hdr_size;
diff --git a/liblog/logger_read.cpp b/liblog/logger_read.cpp
index c65501c..0d383ff 100644
--- a/liblog/logger_read.cpp
+++ b/liblog/logger_read.cpp
@@ -120,7 +120,8 @@
     return -EINVAL;
   }
 
-  if (log_msg->entry.hdr_size != sizeof(log_msg->entry)) {
+  if (log_msg->entry.hdr_size < sizeof(log_msg->entry) ||
+      log_msg->entry.hdr_size >= sizeof(struct log_msg) - sizeof(log_msg->entry)) {
     return -EINVAL;
   }