From 5adac06d08284dd476a64e551afe25bd262b9aea Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Thu, 18 Apr 2019 13:42:33 -0700 Subject: [PATCH] [logging] fix BeaconPayload::ToInfoString() print of network name (#3771) `BeaconPayload::GetNetworkName()` does not return a NULL-terminated string. This commit fixes `BeaconPayload::ToInfoString()` to pass a NULL-terminated string to the string formatter. --- src/core/mac/mac_frame.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/core/mac/mac_frame.cpp b/src/core/mac/mac_frame.cpp index 480240f97..b89271325 100644 --- a/src/core/mac/mac_frame.cpp +++ b/src/core/mac/mac_frame.cpp @@ -1112,9 +1112,12 @@ Frame::InfoString Frame::ToInfoString(void) const BeaconPayload::InfoString BeaconPayload::ToInfoString(void) const { const uint8_t *xpanid = GetExtendedPanId(); + otNetworkName networkname; + + strlcpy(networkname.m8, GetNetworkName(), sizeof(networkname.m8)); return InfoString("name:%s, xpanid:%02x%02x%02x%02x%02x%02x%02x%02x, id:%d ver:%d, joinable:%s, native:%s", - GetNetworkName(), xpanid[0], xpanid[1], xpanid[2], xpanid[3], xpanid[4], xpanid[5], xpanid[6], + networkname.m8, xpanid[0], xpanid[1], xpanid[2], xpanid[3], xpanid[4], xpanid[5], xpanid[6], xpanid[7], GetProtocolId(), GetProtocolVersion(), IsJoiningPermitted() ? "yes" : "no", IsNative() ? "yes" : "no"); }