make sure SSID is not overwritten by mqtt client id, always null-terminate

Each os_sprintf potentially overwrites any later field if the configured
value is to long.
develop
Stefan Brüns 2016-05-31 19:04:11 +02:00
rodzic c431787276
commit b458ea49c1
1 zmienionych plików z 7 dodań i 6 usunięć

Wyświetl plik

@ -87,15 +87,16 @@ CFG_Load()
sysCfg.cfg_holder = CFG_HOLDER;
os_sprintf(sysCfg.sta_ssid, "%s", STA_SSID);
os_sprintf(sysCfg.sta_pwd, "%s", STA_PASS);
os_sprintf(sysCfg.device_id, MQTT_CLIENT_ID, system_get_chip_id());
sysCfg.device_id[sizeof(sysCfg.device_id) - 1] = '\0';
os_strncpy(sysCfg.sta_ssid, STA_SSID, sizeof(sysCfg.sta_ssid) - 1);
os_strncpy(sysCfg.sta_pwd, STA_PASS, sizeof(sysCfg.sta_pwd) - 1);
sysCfg.sta_type = STA_TYPE;
os_sprintf(sysCfg.device_id, MQTT_CLIENT_ID, system_get_chip_id());
os_sprintf(sysCfg.mqtt_host, "%s", MQTT_HOST);
os_strncpy(sysCfg.mqtt_host, MQTT_HOST, sizeof(sysCfg.mqtt_host) - 1);
sysCfg.mqtt_port = MQTT_PORT;
os_sprintf(sysCfg.mqtt_user, "%s", MQTT_USER);
os_sprintf(sysCfg.mqtt_pass, "%s", MQTT_PASS);
os_strncpy(sysCfg.mqtt_user, MQTT_USER, sizeof(sysCfg.mqtt_user) - 1);
os_strncpy(sysCfg.mqtt_pass, MQTT_PASS, sizeof(sysCfg.mqtt_pass) - 1);
sysCfg.security = DEFAULT_SECURITY; /* default non ssl */