Просмотр исходного кода

add GPS interval validation and bounds checking

csrutil 8 месяцев назад
Родитель
Сommit
678915ef3b
1 измененных файлов с 6 добавлено и 3 удалено
  1. 6 3
      examples/companion_radio/MyMesh.cpp

+ 6 - 3
examples/companion_radio/MyMesh.cpp

@@ -779,6 +779,7 @@ void MyMesh::begin(bool has_display) {
   _prefs.cr = constrain(_prefs.cr, 5, 8);
   _prefs.tx_power_dbm = constrain(_prefs.tx_power_dbm, 1, MAX_LORA_TX_POWER);
   _prefs.gps_enabled = constrain(_prefs.gps_enabled, 0, 1);  // Ensure boolean 0 or 1
+  _prefs.gps_interval = constrain(_prefs.gps_interval, 0, 86400);  // Max 24 hours
 
 #ifdef BLE_PIN_CODE // 123456 by default
   if (_prefs.ble_pin == 0) {
@@ -809,9 +810,11 @@ void MyMesh::begin(bool has_display) {
 
 #if ENV_INCLUDE_GPS == 1
   sensors.setSettingValue("gps", _prefs.gps_enabled ? "1" : "0");
-  char interval_str[12];  // Max: 24 hours = 86400 seconds (5 digits + null)
-  sprintf(interval_str, "%u", _prefs.gps_interval);
-  sensors.setSettingValue("gps_interval", interval_str);
+  if (_prefs.gps_interval > 0) {
+    char interval_str[12];  // Max: 24 hours = 86400 seconds (5 digits + null)
+    sprintf(interval_str, "%u", _prefs.gps_interval);
+    sensors.setSettingValue("gps_interval", interval_str);
+  }
 #endif
 }