From 671c9e7c0c37d0568c2f2c1c49b093c98b6a68b2 Mon Sep 17 00:00:00 2001 From: Marius Tache Date: Thu, 27 Apr 2023 20:20:42 +0300 Subject: [PATCH] Fix pigweed tokenizer port Issue introduced in: https://github.com/project-chip/connectedhomeip/pull/25351 Encoded message should also contain the token. Signed-off-by: Marius Tache --- src/lib/support/logging/CHIPLogging.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/support/logging/CHIPLogging.cpp b/src/lib/support/logging/CHIPLogging.cpp index 27b93e802f7991..fae093cd9cca5c 100644 --- a/src/lib/support/logging/CHIPLogging.cpp +++ b/src/lib/support/logging/CHIPLogging.cpp @@ -53,10 +53,13 @@ void HandleTokenizedLog(uint32_t levels, pw_tokenizer_Token token, pw_tokenizer_ { uint8_t encoded_message[PW_TOKENIZER_CFG_ENCODING_BUFFER_SIZE_BYTES]; + memcpy(encoded_message, &token, sizeof(token)); + va_list args; va_start(args, types); // Use the C argument encoding API, since the C++ API requires C++17. - const size_t encoded_size = pw_tokenizer_EncodeArgs(types, args, encoded_message, sizeof(encoded_message)); + const size_t encoded_size = sizeof(token) + + pw_tokenizer_EncodeArgs(types, args, encoded_message + sizeof(token), sizeof(encoded_message) - sizeof(token)); va_end(args); uint8_t log_category = levels >> 8 & 0xFF;