From 796d4552f9f36c34c70fd7395f5c8307a7c26765 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 9 May 2026 02:23:46 +0000 Subject: [PATCH] Address review validation nits Agent-Logs-Url: https://github.com/meshtastic/firmware/sessions/6b1d6cf6-ed6b-43b6-95cb-8e141757664e Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> --- src/mesh/NodeDB.cpp | 4 ++-- src/modules/KeyVerificationModule.cpp | 2 +- src/serialization/MeshPacketSerializer.cpp | 6 ++++-- src/serialization/MeshPacketSerializer_nRF52.cpp | 6 ++++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index 7215f1b59..123369cb9 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -1505,7 +1505,7 @@ LoadFileResult NodeDB::loadProto(const char *filename, size_t protoSize, size_t LOG_INFO("Load %s", filename); pb_istream_t stream = {&readcb, &f, protoSize}; if (fields != &meshtastic_NodeDatabase_msg && - fields != &meshtastic_NodeDatabase_Legacy_msg) // contains a vector object + fields != &meshtastic_NodeDatabase_Legacy_msg) // both NodeDatabase descriptors contain std::vector members memset(dest_struct, 0, objSize); if (!pb_decode(&stream, fields, dest_struct)) { LOG_ERROR("Error: can't decode protobuf %s", PB_GET_ERROR(&stream)); @@ -1599,7 +1599,7 @@ void NodeDB::loadFromDisk() nodeDatabase.nodes.reserve(maxToMigrate); size_t posCount = 0, telCount = 0; { - concurrency::LockGuard satelliteGuard(&satelliteMutex); + concurrency::LockGuard guard(&satelliteMutex); for (size_t i = 0; i < maxToMigrate; ++i) { const auto &legacy = legacyDb.nodes[i]; meshtastic_NodeInfoLite slim = meshtastic_NodeInfoLite_init_default; diff --git a/src/modules/KeyVerificationModule.cpp b/src/modules/KeyVerificationModule.cpp index 634402b34..6225b6712 100644 --- a/src/modules/KeyVerificationModule.cpp +++ b/src/modules/KeyVerificationModule.cpp @@ -16,7 +16,7 @@ void copyNodeLongNameOrUnknown(char *dest, size_t destSize, const meshtastic_Nod if (!dest || destSize == 0) return; const char *name = (node && nodeInfoLiteHasUser(node) && node->long_name[0]) ? node->long_name : "Unknown"; - strncpy(dest, name, destSize); + strncpy(dest, name, destSize - 1); dest[destSize - 1] = '\0'; } } // namespace diff --git a/src/serialization/MeshPacketSerializer.cpp b/src/serialization/MeshPacketSerializer.cpp index 1c5a519d3..f577afdf3 100644 --- a/src/serialization/MeshPacketSerializer.cpp +++ b/src/serialization/MeshPacketSerializer.cpp @@ -322,8 +322,10 @@ std::string MeshPacketSerializer::JsonSerialize(const meshtastic_MeshPacket *mp, meshtastic_NodeInfoLite *node = nodeDB->getMeshNode(num); bool name_known = nodeInfoLiteHasUser(node); if (name_known) { - memcpy(long_name, node->long_name, sizeof(node->long_name)); - long_name[sizeof(node->long_name)] = '\0'; + const size_t copy_len = + (sizeof(node->long_name) < sizeof(long_name)) ? sizeof(node->long_name) : sizeof(long_name) - 1; + memcpy(long_name, node->long_name, copy_len); + long_name[copy_len] = '\0'; } route->push_back(new JSONValue(long_name)); }; diff --git a/src/serialization/MeshPacketSerializer_nRF52.cpp b/src/serialization/MeshPacketSerializer_nRF52.cpp index 3e0b41883..c79b3d269 100644 --- a/src/serialization/MeshPacketSerializer_nRF52.cpp +++ b/src/serialization/MeshPacketSerializer_nRF52.cpp @@ -294,8 +294,10 @@ std::string MeshPacketSerializer::JsonSerialize(const meshtastic_MeshPacket *mp, meshtastic_NodeInfoLite *node = nodeDB->getMeshNode(num); bool name_known = nodeInfoLiteHasUser(node); if (name_known) { - memcpy(long_name, node->long_name, sizeof(node->long_name)); - long_name[sizeof(node->long_name)] = '\0'; + const size_t copy_len = + (sizeof(node->long_name) < sizeof(long_name)) ? sizeof(node->long_name) : sizeof(long_name) - 1; + memcpy(long_name, node->long_name, copy_len); + long_name[copy_len] = '\0'; } route->add(long_name); };