diff --git a/src/cJSON/cJSON.c b/src/cJSON/cJSON.c
index 38e9f6154..2feac1598 100644
--- a/src/cJSON/cJSON.c
+++ b/src/cJSON/cJSON.c
@@ -124,7 +124,7 @@ CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item)
CJSON_PUBLIC(const char*) cJSON_Version(void)
{
static char version[15];
- sprintf(version, "%i.%i.%i", CJSON_VERSION_MAJOR, CJSON_VERSION_MINOR, CJSON_VERSION_PATCH);
+ snprintf(version, sizeof(version), "%i.%i.%i", CJSON_VERSION_MAJOR, CJSON_VERSION_MINOR, CJSON_VERSION_PATCH);
return version;
}
@@ -569,22 +569,22 @@ static cJSON_bool print_number(const cJSON * const item, printbuffer * const out
/* This checks for NaN and Infinity */
if (isnan(d) || isinf(d))
{
- length = sprintf((char*)number_buffer, "null");
+ length = snprintf((char*)number_buffer, sizeof(number_buffer), "null");
}
else if(d == (double)item->valueint)
{
- length = sprintf((char*)number_buffer, "%d", item->valueint);
+ length = snprintf((char*)number_buffer, sizeof(number_buffer), "%d", item->valueint);
}
else
{
/* Try 15 decimal places of precision to avoid nonsignificant nonzero digits */
- length = sprintf((char*)number_buffer, "%1.15g", d);
+ length = snprintf((char*)number_buffer, sizeof(number_buffer), "%1.15g", d);
/* Check whether the original double can be recovered */
if ((sscanf((char*)number_buffer, "%lg", &test) != 1) || !compare_double((double)test, d))
{
/* If not, print with 17 decimal places of precision */
- length = sprintf((char*)number_buffer, "%1.17g", d);
+ length = snprintf((char*)number_buffer, sizeof(number_buffer), "%1.17g", d);
}
}
@@ -1017,7 +1017,7 @@ static cJSON_bool print_string_ptr(const unsigned char * const input, printbuffe
break;
default:
/* escape and print as unicode codepoint */
- sprintf((char*)output_pointer, "u%04x", *input_pointer);
+ snprintf((char*)output_pointer, sizeof(output_pointer), "u%04x", *input_pointer);
output_pointer += 4;
break;
}
diff --git a/src/cmnds/cmd_channels.c b/src/cmnds/cmd_channels.c
index 66976a785..ed4278f07 100644
--- a/src/cmnds/cmd_channels.c
+++ b/src/cmnds/cmd_channels.c
@@ -158,7 +158,7 @@ static int CMD_GetReadings(const void *context, const char *cmd, const char *arg
e = DRV_GetReading(OBK_CONSUMPTION_TOTAL);
elh = DRV_GetReading(OBK_CONSUMPTION_LAST_HOUR);
- sprintf(tmp, "%f %f %f %f %f",v,c,p,e,elh);
+ snprintf(tmp, sizeof(tmp), "%f %f %f %f %f",v,c,p,e,elh);
if(cmdFlags & COMMAND_FLAG_SOURCE_TCP) {
ADDLOG_INFO(LOG_FEATURE_RAW, tmp);
diff --git a/src/cmnds/cmd_newLEDDriver.c b/src/cmnds/cmd_newLEDDriver.c
index d306c6928..e8172b1c5 100644
--- a/src/cmnds/cmd_newLEDDriver.c
+++ b/src/cmnds/cmd_newLEDDriver.c
@@ -215,7 +215,7 @@ static OBK_Publish_Result sendColorChange() {
c[1] = (byte)(baseColors[1]);
c[2] = (byte)(baseColors[2]);
- sprintf(s,"%02X%02X%02X",c[0],c[1],c[2]);
+ snprintf(s, sizeof(s), "%02X%02X%02X",c[0],c[1],c[2]);
return MQTT_PublishMain_StringString_DeDuped(DEDUP_LED_BASECOLOR_RGB,DEDUP_EXPIRE_TIME,"led_basecolor_rgb",s, 0);
}
@@ -226,7 +226,7 @@ void LED_GetBaseColorString(char * s) {
c[1] = (byte)(baseColors[1]);
c[2] = (byte)(baseColors[2]);
- sprintf(s,"%02X%02X%02X",c[0],c[1],c[2]);
+ sprintf(s, "%02X%02X%02X",c[0],c[1],c[2]);
}
static void sendFinalColor() {
char s[16];
@@ -240,7 +240,7 @@ static void sendFinalColor() {
c[1] = (byte)(finalColors[1]);
c[2] = (byte)(finalColors[2]);
- sprintf(s,"%02X%02X%02X",c[0],c[1],c[2]);
+ snprintf(s, sizeof(s),"%02X%02X%02X",c[0],c[1],c[2]);
MQTT_PublishMain_StringString_DeDuped(DEDUP_LED_FINALCOLOR_RGB,DEDUP_EXPIRE_TIME,"led_finalcolor_rgb",s, 0);
}
diff --git a/src/driver/drv_bl0937.c b/src/driver/drv_bl0937.c
index 3f0848a5e..9bcdfa5ec 100644
--- a/src/driver/drv_bl0937.c
+++ b/src/driver/drv_bl0937.c
@@ -60,7 +60,7 @@ int BL0937_PowerSet(const void *context, const char *cmd, const char *args, int
{
char dbg[128];
- sprintf(dbg,"PowerSet: you gave %f, set ref to %f\n", realPower, BL0937_PREF);
+ snprintf(dbg, sizeof(dbg),"PowerSet: you gave %f, set ref to %f\n", realPower, BL0937_PREF);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
return 0;
@@ -119,7 +119,7 @@ int BL0937_VoltageSet(const void *context, const char *cmd, const char *args, in
{
char dbg[128];
- sprintf(dbg,"VoltageSet: you gave %f, set ref to %f\n", realV, BL0937_VREF);
+ snprintf(dbg, sizeof(dbg),"VoltageSet: you gave %f, set ref to %f\n", realV, BL0937_VREF);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
@@ -140,7 +140,7 @@ int BL0937_CurrentSet(const void *context, const char *cmd, const char *args, in
{
char dbg[128];
- sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realI, BL0937_CREF);
+ snprintf(dbg, sizeof(dbg),"CurrentSet: you gave %f, set ref to %f\n", realI, BL0937_CREF);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
return 0;
@@ -203,7 +203,7 @@ void BL0937_RunFrame() {
#if 0
{
char dbg[128];
- sprintf(dbg,"Voltage %f, current %f, power %f\n", final_v, final_c, final_p);
+ snprintf(dbg, sizeof(dbg),"Voltage %f, current %f, power %f\n", final_v, final_c, final_p);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
#endif
diff --git a/src/driver/drv_bl0942.c b/src/driver/drv_bl0942.c
index 82f7be73d..73e012f42 100644
--- a/src/driver/drv_bl0942.c
+++ b/src/driver/drv_bl0942.c
@@ -74,7 +74,7 @@ int BL0942_TryToGetNextBL0942Packet() {
char buffer2[32];
buffer_for_log[0] = 0;
for(i = 0; i < BL0942_PACKET_LEN; i++) {
- sprintf(buffer2,"%02X ",UART_GetNextByte(i));
+ snprintf(buffer2, sizeof(buffer2), "%02X ",UART_GetNextByte(i));
strcat_safe(buffer_for_log,buffer2,sizeof(buffer_for_log));
}
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,"BL0942 received: %s\n", buffer_for_log);
@@ -111,7 +111,7 @@ int BL0942_TryToGetNextBL0942Packet() {
{
char res[128];
// V=245.107925,I=109.921143,P=0.035618
- sprintf(res,"V=%f,I=%f,P=%f\n",lastReadings[OBK_VOLTAGE],lastReadings[OBK_CURRENT],lastReadings[OBK_POWER]);
+ snprintf(res, sizeof(res),"V=%f,I=%f,P=%f\n",lastReadings[OBK_VOLTAGE],lastReadings[OBK_CURRENT],lastReadings[OBK_POWER]);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,res );
}
#endif
@@ -141,7 +141,7 @@ int BL0942_PowerSet(const void *context, const char *cmd, const char *args, int
{
char dbg[128];
- sprintf(dbg,"PowerSet: you gave %f, set ref to %f\n", realPower, BL0942_PREF);
+ snprintf(dbg, sizeof(dbg),"PowerSet: you gave %f, set ref to %f\n", realPower, BL0942_PREF);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
return 0;
@@ -200,7 +200,7 @@ int BL0942_VoltageSet(const void *context, const char *cmd, const char *args, in
{
char dbg[128];
- sprintf(dbg,"VoltageSet: you gave %f, set ref to %f\n", realV, BL0942_UREF);
+ snprintf(dbg, sizeof(dbg),"VoltageSet: you gave %f, set ref to %f\n", realV, BL0942_UREF);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
@@ -221,7 +221,7 @@ int BL0942_CurrentSet(const void *context, const char *cmd, const char *args, in
{
char dbg[128];
- sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realI, BL0942_IREF);
+ snprintf(dbg, sizeof(dbg),"CurrentSet: you gave %f, set ref to %f\n", realI, BL0942_IREF);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
return 0;
diff --git a/src/driver/drv_cse7766.c b/src/driver/drv_cse7766.c
index c87e4d5a2..6f2cd7849 100644
--- a/src/driver/drv_cse7766.c
+++ b/src/driver/drv_cse7766.c
@@ -73,7 +73,7 @@ int CSE7766_TryToGetNextCSE7766Packet() {
char buffer2[32];
buffer_for_log[0] = 0;
for(i = 0; i < CSE7766_PACKET_LEN; i++) {
- sprintf(buffer2,"%02X ",UART_GetNextByte(i));
+ snprintf(buffer2, sizeof(buffer2), "%02X ",UART_GetNextByte(i));
strcat_safe(buffer_for_log,buffer2,sizeof(buffer_for_log));
}
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,"CSE7766 received: %s\n", buffer_for_log);
@@ -188,7 +188,7 @@ int CSE7766_TryToGetNextCSE7766Packet() {
{
char res[128];
// V=245.107925,I=109.921143,P=0.035618
- sprintf(res,"V=%f,I=%f,P=%f\n",lastReadings[OBK_VOLTAGE],lastReadings[OBK_CURRENT],lastReadings[OBK_POWER]);
+ snprintf(res, sizeof(res), "V=%f,I=%f,P=%f\n",lastReadings[OBK_VOLTAGE],lastReadings[OBK_CURRENT],lastReadings[OBK_POWER]);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,res );
}
#endif
@@ -213,7 +213,7 @@ int CSE7766_PowerSet(const void *context, const char *cmd, const char *args, int
{
char dbg[128];
- sprintf(dbg,"PowerSet: you gave %f, set ref to %f\n", realPower, CSE7766_PREF);
+ snprintf(dbg, sizeof(dbg),"PowerSet: you gave %f, set ref to %f\n", realPower, CSE7766_PREF);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
return 0;
@@ -272,7 +272,7 @@ int CSE7766_VoltageSet(const void *context, const char *cmd, const char *args, i
{
char dbg[128];
- sprintf(dbg,"VoltageSet: you gave %f, set ref to %f\n", realV, CSE7766_UREF);
+ snprintf(dbg, sizeof(dbg),"VoltageSet: you gave %f, set ref to %f\n", realV, CSE7766_UREF);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
@@ -293,7 +293,7 @@ int CSE7766_CurrentSet(const void *context, const char *cmd, const char *args, i
{
char dbg[128];
- sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realI, CSE7766_IREF);
+ snprintf(dbg, sizeof(dbg),"CurrentSet: you gave %f, set ref to %f\n", realI, CSE7766_IREF);
addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg);
}
return 0;
diff --git a/src/driver/drv_ir.cpp b/src/driver/drv_ir.cpp
index 73811f208..9248016d9 100644
--- a/src/driver/drv_ir.cpp
+++ b/src/driver/drv_ir.cpp
@@ -599,9 +599,9 @@ extern "C" void DRV_IR_RunFrame(){
if (publishrepeats || !repeat){
if (ourReceiver->decodedIRData.protocol == UNKNOWN){
- sprintf(out, "IR_%s 0x%X %d", name, ourReceiver->decodedIRData.decodedRawData, repeat);
+ snprintf(out, sizeof(out), "IR_%s 0x%X %d", name, ourReceiver->decodedIRData.decodedRawData, repeat);
} else {
- sprintf(out, "IR_%s 0x%X 0x%X %d", name, ourReceiver->decodedIRData.address, ourReceiver->decodedIRData.command, repeat);
+ snprintf(out, sizeof(out), "IR_%s 0x%X 0x%X %d", name, ourReceiver->decodedIRData.address, ourReceiver->decodedIRData.command, repeat);
}
//ADDLOG_INFO(LOG_FEATURE_IR, (char *)"IR MQTT publish %s", out);
@@ -613,7 +613,7 @@ extern "C" void DRV_IR_RunFrame(){
}
}
if(ourReceiver->decodedIRData.protocol != UNKNOWN) {
- sprintf(out, "%X", ourReceiver->decodedIRData.command);
+ snprintf(out, sizeof(out), "%X", ourReceiver->decodedIRData.command);
int tgType = 0;
switch(ourReceiver->decodedIRData.protocol)
{
diff --git a/src/driver/drv_tuyaMCU.c b/src/driver/drv_tuyaMCU.c
index e80ae6500..f2af1a251 100644
--- a/src/driver/drv_tuyaMCU.c
+++ b/src/driver/drv_tuyaMCU.c
@@ -221,7 +221,7 @@ int UART_TryToGetNextTuyaPacket(byte *out, int maxSize) {
if(a != 0x55 || b != 0xAA) {
UART_ConsumeBytes(1);
if(c_garbage_consumed + 2 < sizeof(printfSkipDebug)) {
- sprintf(buffer2,"%02X ",a);
+ snprintf(buffer2, sizeof(buffer2),"%02X ",a);
strcat_safe(printfSkipDebug,buffer2,sizeof(printfSkipDebug));
}
c_garbage_consumed++;
@@ -993,7 +993,7 @@ void TuyaMCU_RunFrame() {
if(len > 0) {
buffer_for_log[0] = 0;
for(i = 0; i < len; i++) {
- sprintf(buffer2,"%02X ",data[i]);
+ snprintf(buffer2, sizeof(buffer2),"%02X ",data[i]);
strcat_safe(buffer_for_log,buffer2,sizeof(buffer_for_log));
}
addLogAdv(LOG_INFO, LOG_FEATURE_TUYAMCU,"TUYAMCU received: %s\n", buffer_for_log);
@@ -1001,7 +1001,7 @@ void TuyaMCU_RunFrame() {
// redo sprintf without spaces
buffer_for_log[0] = 0;
for(i = 0; i < len; i++) {
- sprintf(buffer2,"%02X",data[i]);
+ snprintf(buffer2, sizeof(buffer2),"%02X",data[i]);
strcat_safe(buffer_for_log,buffer2,sizeof(buffer_for_log));
}
// fire string event, as we already have it sprintfed
diff --git a/src/hal/w800/hal_wifi_w800.c b/src/hal/w800/hal_wifi_w800.c
index 14f0c698e..80d22eeb7 100644
--- a/src/hal/w800/hal_wifi_w800.c
+++ b/src/hal/w800/hal_wifi_w800.c
@@ -76,7 +76,7 @@ void HAL_PrintNetworkInfo()
struct netif* netif = tls_get_netif();
MEMCPY(mac, &netif->hwaddr[0], ETH_ALEN);
- sprintf(macstr, MACSTR, MAC2STR(mac));
+ snprintf(macstr, sizeof(macstr), MACSTR, MAC2STR(mac));
tls_wifi_get_current_bss(&bss);
diff --git a/src/httpclient/http_client.c b/src/httpclient/http_client.c
index 81bf0b937..a2f9701d2 100644
--- a/src/httpclient/http_client.c
+++ b/src/httpclient/http_client.c
@@ -259,7 +259,7 @@ int httpclient_send_auth(httpclient_t *client, char *send_buf, int *send_idx)
char base64buff[HTTPCLIENT_AUTHB_SIZE + 3];
httpclient_get_info(client, send_buf, send_idx, "Authorization: Basic ", 0);
- sprintf(base64buff, "%s:%s", client->auth_user, client->auth_password);
+ snprintf(base64buff, sizeof(base64buff), "%s:%s", client->auth_user, client->auth_password);
ADDLOG_DEBUG(LOG_FEATURE_HTTP_CLIENT, "bAuth: %s", base64buff) ;
httpclient_base64enc(b_auth, base64buff);
b_auth[os_strlen(b_auth) + 1] = '\0';
diff --git a/src/httpclient/utils_net.c b/src/httpclient/utils_net.c
index 1d3c3b863..76e4bfc2d 100644
--- a/src/httpclient/utils_net.c
+++ b/src/httpclient/utils_net.c
@@ -23,7 +23,7 @@ uintptr_t HAL_TCP_Establish(const char *host, uint16_t port)
hints.ai_family = AF_INET; //only IPv4
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
- sprintf(service, "%u", port);
+ snprintf(service, sizeof(service), "%u", port);
if ((rc = getaddrinfo(host, service, &hints, &addrInfoList)) != 0) {
ADDLOG_ERROR(LOG_FEATURE_HTTP_CLIENT,"getaddrinfo error");
diff --git a/src/httpserver/new_http.c b/src/httpserver/new_http.c
index b3404b6c6..67bf29912 100644
--- a/src/httpserver/new_http.c
+++ b/src/httpserver/new_http.c
@@ -199,9 +199,9 @@ void http_html_end(http_request_t* request) {
WiFI_GetMacAddress((char*)mac);
- sprintf(upTimeStr, "
Device MAC: %02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+ snprintf(upTimeStr, sizeof(upTimeStr), "
Device MAC: %02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
poststr(request, upTimeStr);
- sprintf(upTimeStr, "
Short name: %s, Chipset %s", CFG_GetShortDeviceName(), PLATFORM_MCU_NAME);
+ snprintf(upTimeStr, sizeof(upTimeStr), "
Short name: %s, Chipset %s", CFG_GetShortDeviceName(), PLATFORM_MCU_NAME);
poststr(request, upTimeStr);
poststr(request, htmlBodyEnd);
diff --git a/src/httpserver/rest_interface.c b/src/httpserver/rest_interface.c
index fc1536f1b..417fef6f5 100644
--- a/src/httpserver/rest_interface.c
+++ b/src/httpserver/rest_interface.c
@@ -698,7 +698,7 @@ static int http_rest_post_logconfig(http_request_t* request) {
else {
ADDLOG_ERROR(LOG_FEATURE_API, "Unexpected key: %.*s", t[i].end - t[i].start,
json_str + t[i].start);
- sprintf(tmp, "Unexpected key: %.*s\n", t[i].end - t[i].start,
+ snprintf(tmp, sizeof(tmp), "Unexpected key: %.*s\n", t[i].end - t[i].start,
json_str + t[i].start);
poststr(request, tmp);
}
diff --git a/src/mqtt/new_mqtt.c b/src/mqtt/new_mqtt.c
index 0d8a0975c..17fecfca2 100644
--- a/src/mqtt/new_mqtt.c
+++ b/src/mqtt/new_mqtt.c
@@ -712,7 +712,7 @@ static void mqtt_connection_cb(mqtt_client_t* client, void* arg, mqtt_connection
clientId = CFG_GetMQTTClientId();
- sprintf(tmp, "%s/connected", clientId);
+ snprintf(tmp, sizeof(tmp), "%s/connected", clientId);
err = mqtt_publish(client, tmp, "online", strlen("online"), 2, true, mqtt_pub_request_cb, 0);
if (err != ERR_OK) {
addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "Publish err: %d\n", err);
@@ -755,7 +755,7 @@ static void MQTT_do_connect(mqtt_client_t* client)
if (!mqtt_host[0]) {
addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "mqtt_host empty, not starting mqtt\r\n");
- sprintf(mqtt_status_message, "mqtt_host empty, not starting mqtt");
+ snprintf(mqtt_status_message, sizeof(mqtt_status_message), "mqtt_host empty, not starting mqtt");
return;
}
@@ -795,7 +795,7 @@ static void MQTT_do_connect(mqtt_client_t* client)
}
else {
addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "mqtt_host resolves no addresses?\r\n");
- sprintf(mqtt_status_message, "mqtt_host resolves no addresses?");
+ snprintf(mqtt_status_message, sizeof(mqtt_status_message), "mqtt_host resolves no addresses?");
return;
}
@@ -815,7 +815,7 @@ static void MQTT_do_connect(mqtt_client_t* client)
if (res != ERR_OK)
{
addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "Connect error in mqtt_client_connect - code: %d (%s)\n", res, get_error_name(res));
- sprintf(mqtt_status_message, "mqtt_client_connect connect failed");
+ snprintf(mqtt_status_message, sizeof(mqtt_status_message), "mqtt_client_connect connect failed");
if (res == ERR_ISCONN)
{
mqtt_disconnect(mqtt_client);
@@ -827,7 +827,7 @@ static void MQTT_do_connect(mqtt_client_t* client)
}
else {
addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "mqtt_host %s not found by gethostbyname\r\n", mqtt_host);
- sprintf(mqtt_status_message, "mqtt_host %s not found by gethostbyname", mqtt_host);
+ snprintf(mqtt_status_message, sizeof(mqtt_status_message), "mqtt_host %s not found by gethostbyname", mqtt_host);
}
}
@@ -920,14 +920,14 @@ void MQTT_init()
clientId = CFG_GetMQTTClientId();
// register the main set channel callback
- sprintf(cbtopicbase, "%s/", clientId);
- sprintf(cbtopicsub, "%s/+/set", clientId);
+ snprintf(cbtopicbase, sizeof(cbtopicbase), "%s/", clientId);
+ snprintf(cbtopicsub, sizeof(cbtopicsub), "%s/+/set", clientId);
// note: this may REPLACE an existing entry with the same ID. ID 1 !!!
MQTT_RegisterCallback(cbtopicbase, cbtopicsub, 1, channelSet);
// register the TAS cmnd callback
- sprintf(cbtopicbase, "cmnd/%s/", clientId);
- sprintf(cbtopicsub, "cmnd/%s/+", clientId);
+ snprintf(cbtopicbase, sizeof(cbtopicbase), "cmnd/%s/", clientId);
+ snprintf(cbtopicsub, sizeof(cbtopicsub), "cmnd/%s/+", clientId);
// note: this may REPLACE an existing entry with the same ID. ID 2 !!!
MQTT_RegisterCallback(cbtopicbase, cbtopicsub, 2, tasCmnd);
diff --git a/src/new_cfg.c b/src/new_cfg.c
index c79119dc4..7d7c82030 100644
--- a/src/new_cfg.c
+++ b/src/new_cfg.c
@@ -135,8 +135,8 @@ void CFG_SetDefaultConfig() {
memcpy(g_cfg.mac,mac,6);
strcpy(g_cfg.webappRoot, "https://openbekeniot.github.io/webapp/");
// Long unique device name, like OpenBK7231T_AABBCCDD
- sprintf(g_cfg.longDeviceName,DEVICENAME_PREFIX_FULL"_%02X%02X%02X%02X",mac[2],mac[3],mac[4],mac[5]);
- sprintf(g_cfg.shortDeviceName,DEVICENAME_PREFIX_SHORT"%02X%02X%02X%02X",mac[2],mac[3],mac[4],mac[5]);
+ snprintf(g_cfg.longDeviceName, sizeof(g_cfg.longDeviceName), DEVICENAME_PREFIX_FULL"_%02X%02X%02X%02X",mac[2],mac[3],mac[4],mac[5]);
+ snprintf(g_cfg.shortDeviceName, sizeof(g_cfg.shortDeviceName), DEVICENAME_PREFIX_SHORT"%02X%02X%02X%02X",mac[2],mac[3],mac[4],mac[5]);
strcpy_safe(g_cfg.mqtt_clientId, g_cfg.shortDeviceName, sizeof(g_cfg.mqtt_clientId));
strcpy(g_cfg.ntpServer, "217.147.223.78"); //bart.nexellent.net