@@ -26,21 +26,21 @@ void onMqttConnect(bool sessionPresent)
2626 char subuf[38 ];
2727
2828 if (mqttDeviceTopic[0 ] != 0 ) {
29- strcpy (subuf, mqttDeviceTopic);
29+ strlcpy (subuf, mqttDeviceTopic, 33 );
3030 mqtt->subscribe (subuf, 0 );
3131 strcat_P (subuf, PSTR (" /col" ));
3232 mqtt->subscribe (subuf, 0 );
33- strcpy (subuf, mqttDeviceTopic);
33+ strlcpy (subuf, mqttDeviceTopic, 33 );
3434 strcat_P (subuf, PSTR (" /api" ));
3535 mqtt->subscribe (subuf, 0 );
3636 }
3737
3838 if (mqttGroupTopic[0 ] != 0 ) {
39- strcpy (subuf, mqttGroupTopic);
39+ strlcpy (subuf, mqttGroupTopic, 33 );
4040 mqtt->subscribe (subuf, 0 );
4141 strcat_P (subuf, PSTR (" /col" ));
4242 mqtt->subscribe (subuf, 0 );
43- strcpy (subuf, mqttGroupTopic);
43+ strlcpy (subuf, mqttGroupTopic, 33 );
4444 strcat_P (subuf, PSTR (" /api" ));
4545 mqtt->subscribe (subuf, 0 );
4646 }
@@ -122,22 +122,22 @@ void publishMqtt()
122122 char subuf[38 ];
123123
124124 sprintf_P (s, PSTR (" %u" ), bri);
125- strcpy (subuf, mqttDeviceTopic);
125+ strlcpy (subuf, mqttDeviceTopic, 33 );
126126 strcat_P (subuf, PSTR (" /g" ));
127127 mqtt->publish (subuf, 0 , true , s);
128128
129129 sprintf_P (s, PSTR (" #%06X" ), (col[3 ] << 24 ) | (col[0 ] << 16 ) | (col[1 ] << 8 ) | (col[2 ]));
130- strcpy (subuf, mqttDeviceTopic);
130+ strlcpy (subuf, mqttDeviceTopic, 33 );
131131 strcat_P (subuf, PSTR (" /c" ));
132132 mqtt->publish (subuf, 0 , true , s);
133133
134- strcpy (subuf, mqttDeviceTopic);
134+ strlcpy (subuf, mqttDeviceTopic, 33 );
135135 strcat_P (subuf, PSTR (" /status" ));
136136 mqtt->publish (subuf, 0 , true , " online" );
137137
138138 char apires[1024 ];
139139 XML_response (nullptr , apires);
140- strcpy (subuf, mqttDeviceTopic);
140+ strlcpy (subuf, mqttDeviceTopic, 33 );
141141 strcat_P (subuf, PSTR (" /v" ));
142142 mqtt->publish (subuf, 0 , false , apires);
143143}
@@ -167,7 +167,7 @@ bool initMqtt()
167167 mqtt->setClientId (mqttClientID);
168168 if (mqttUser[0 ] && mqttPass[0 ]) mqtt->setCredentials (mqttUser, mqttPass);
169169
170- strcpy (mqttStatusTopic, mqttDeviceTopic);
170+ strlcpy (mqttStatusTopic, mqttDeviceTopic, 33 );
171171 strcat_P (mqttStatusTopic, PSTR (" /status" ));
172172 mqtt->setWill (mqttStatusTopic, 0 , true , " offline" );
173173 mqtt->setKeepAlive (MQTT_KEEP_ALIVE_TIME);
0 commit comments