This is an automated email from the ASF dual-hosted git repository.

sjanc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-mcumgr.git

commit f8c60f946232729b28c2b55700e159571d95a3e6
Author: Szymon Janc <[email protected]>
AuthorDate: Wed Oct 7 16:10:48 2026 +0200

    cmd/log_mgmt: Fix watermark update on response size error
    
    If response size was exceeded before any entry was processed, watermark
    was updated with uninitialized index. Return directly in that case and
    initialize walk context.
    
    Assisted-by: Claude:claude-opus-5-5
---
 cmd/log_mgmt/src/log_mgmt.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/cmd/log_mgmt/src/log_mgmt.c b/cmd/log_mgmt/src/log_mgmt.c
index e312b4c..398c6ec 100644
--- a/cmd/log_mgmt/src/log_mgmt.c
+++ b/cmd/log_mgmt/src/log_mgmt.c
@@ -252,7 +252,7 @@ log_encode_entries(const struct log_mgmt_log *log, 
CborEncoder *enc,
 {
     struct CborCntWriter cnt_writer;
     struct log_mgmt_filter filter;
-    struct log_walk_ctxt ctxt;
+    struct log_walk_ctxt ctxt = { 0 };
     CborEncoder cnt_encoder;
     CborEncoder entries;
     CborError err;
@@ -272,8 +272,8 @@ log_encode_entries(const struct log_mgmt_log *log, 
CborEncoder *enc,
     rsp_len = cbor_encode_bytes_written(enc) +
               cbor_encode_bytes_written(&cnt_encoder);
     if (rsp_len > LOG_MGMT_MAX_RSP_LEN) {
-        rc = LOG_MGMT_ERR_EUNKNOWN;
-        goto err;
+        /* No entries were processed, don't update watermark */
+        return LOG_MGMT_ERR_EUNKNOWN;
     }
 
     err |= cbor_encode_text_stringz(enc, "entries");
@@ -304,7 +304,6 @@ log_encode_entries(const struct log_mgmt_log *log, 
CborEncoder *enc,
         return LOG_MGMT_ERR_ENOMEM;
     }
 
-err:
 #if LOG_MGMT_READ_WATERMARK_UPDATE
     if (!rc || rc == LOG_MGMT_ERR_EUNKNOWN) {
         log_mgmt_impl_set_watermark(log, ctxt.last_enc_index);

Reply via email to