diff --git a/src/bridge/network/PeerNetwork.cpp b/src/bridge/network/PeerNetwork.cpp index 36158a72..9e782161 100644 --- a/src/bridge/network/PeerNetwork.cpp +++ b/src/bridge/network/PeerNetwork.cpp @@ -196,13 +196,13 @@ bool PeerNetwork::writeConfig() char* buffer = __buffer.get(); ::memcpy(buffer + 0U, TAG_REPEATER_CONFIG, 4U); - ::sprintf(buffer + 8U, "%s", json.c_str()); + ::snprintf(buffer + 8U, json.length() + 1U, "%s", json.c_str()); if (m_debug) { Utils::dump(1U, "Network Message, Configuration", (uint8_t*)buffer, json.length() + 8U); } - return writeMaster({ NET_FUNC::RPTC, NET_SUBFUNC::NOP }, (uint8_t*)buffer, json.length() + 8U, pktSeq(), m_loginStreamId); + return writeMaster({ NET_FUNC::RPTC, NET_SUBFUNC::NOP }, (uint8_t*)buffer, json.length() + 8U, RTP_END_OF_CALL_SEQ, m_loginStreamId); } // --------------------------------------------------------------------------- diff --git a/src/sysview/network/PeerNetwork.cpp b/src/sysview/network/PeerNetwork.cpp index 5933a5c2..55c4ce89 100644 --- a/src/sysview/network/PeerNetwork.cpp +++ b/src/sysview/network/PeerNetwork.cpp @@ -152,14 +152,15 @@ bool PeerNetwork::writeConfig() json::value v = json::value(config); std::string json = v.serialize(); - char buffer[json.length() + 8U]; + CharArray __buffer = std::make_unique(json.length() + 9U); + char* buffer = __buffer.get(); ::memcpy(buffer + 0U, TAG_REPEATER_CONFIG, 4U); - ::sprintf(buffer + 8U, "%s", json.c_str()); + ::snprintf(buffer + 8U, json.length() + 1U, "%s", json.c_str()); if (m_debug) { Utils::dump(1U, "Network Message, Configuration", (uint8_t*)buffer, json.length() + 8U); } - return writeMaster({ NET_FUNC::RPTC, NET_SUBFUNC::NOP }, (uint8_t*)buffer, json.length() + 8U, pktSeq(), m_loginStreamId); + return writeMaster({ NET_FUNC::RPTC, NET_SUBFUNC::NOP }, (uint8_t*)buffer, json.length() + 8U, RTP_END_OF_CALL_SEQ, m_loginStreamId); }