You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by vi...@apache.org on 2025/07/25 20:08:47 UTC
(mynewt-mcumgr) 01/01: cmd/log_mgmt: Subtract trailer length on log read
This is an automated email from the ASF dual-hosted git repository.
vipulrahane pushed a commit to branch vipul/log_trailer_fix
in repository https://gitbox.apache.org/repos/asf/mynewt-mcumgr.git
commit 390a1fa1d0e8d251f7996632bef03c988cc5e32f
Author: Vipul Rahane <vi...@juul.com>
AuthorDate: Fri Jul 25 12:59:09 2025 -0700
cmd/log_mgmt: Subtract trailer length on log read
- trailer_length and size of the trailer should be subtracted
from the log entry being read to get only the log entry data
---
cmd/log_mgmt/port/mynewt/src/mynewt_log_mgmt.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/cmd/log_mgmt/port/mynewt/src/mynewt_log_mgmt.c b/cmd/log_mgmt/port/mynewt/src/mynewt_log_mgmt.c
index 8f7e50f..7bd6bf4 100644
--- a/cmd/log_mgmt/port/mynewt/src/mynewt_log_mgmt.c
+++ b/cmd/log_mgmt/port/mynewt/src/mynewt_log_mgmt.c
@@ -161,6 +161,7 @@ mynewt_log_mgmt_walk_cb(struct log *log, struct log_offset *log_offset,
{
struct mynewt_log_mgmt_walk_arg *mynewt_log_mgmt_walk_arg;
struct log_mgmt_entry entry;
+ uint16_t trailer_len = 0;
int read_len;
int offset;
int rc;
@@ -199,6 +200,16 @@ mynewt_log_mgmt_walk_cb(struct log *log, struct log_offset *log_offset,
entry.len = len;
entry.data = mynewt_log_mgmt_walk_arg->chunk;
+#if MYNEWT_VAL(LOG_FLAGS_TRAILER)
+ trailer_len -= log_read_trailer_len(log, dptr);
+ if (trailer_len) {
+ /* If trailer is present, so is the length of the trailer */
+ trailer_len += LOG_TRAILER_LEN_SIZE;
+ }
+
+ len -= trailer_len;
+#endif
+
for (offset = 0; offset < len; offset += LOG_MGMT_CHUNK_LEN) {
if (len - offset < LOG_MGMT_CHUNK_LEN) {
read_len = len - offset;