From 5c07b1b02c15bf77e3744d4fde405d443ca4646e Mon Sep 17 00:00:00 2001 From: Wessel Nieboer Date: Wed, 11 Feb 2026 03:41:16 +0100 Subject: [PATCH] add debug log for malformed PATH payload Log path_len and len when the bounds check fails, making it easier to diagnose malformed or corrupt packets during development. --- src/Mesh.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Mesh.cpp b/src/Mesh.cpp index afc46df1..4dd4bc6d 100644 --- a/src/Mesh.cpp +++ b/src/Mesh.cpp @@ -155,7 +155,10 @@ DispatcherAction Mesh::onRecvPacket(Packet* pkt) { uint8_t path_len = data[k++]; uint8_t hash_size = (path_len >> 6) + 1; uint8_t hash_count = path_len & 63; - if (k + hash_size*hash_count + 1 > len) break; // bounds check: need path bytes + extra_type byte + if (k + hash_size*hash_count + 1 > len) { // bounds check: need path bytes + extra_type byte + MESH_DEBUG_PRINTLN("%s Mesh::onRecvPacket(): bad PATH payload format, path_len=%d len=%d", getLogDateTime(), (int)path_len, (int)len); + break; + } uint8_t* path = &data[k]; k += hash_size*hash_count; uint8_t extra_type = data[k++] & 0x0F; // upper 4 bits reserved for future use uint8_t* extra = &data[k];