Skip to content

Commit 26ca15e

Browse files
caco3CaCO3
andauthored
fix crash fue to empty CAM parameters in migration (jomjol#3450)
Co-authored-by: CaCO3 <[email protected]>
1 parent f4dccc1 commit 26ca15e

File tree

1 file changed

+43
-8
lines changed

1 file changed

+43
-8
lines changed

code/main/main.cpp

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -600,27 +600,57 @@ void migrateConfiguration(void) {
600600
}
601601
else if ((isInString(configLines[i], "Zoom")) && (!isInString(configLines[i], "CamZoom")) && (!isInString(configLines[i], "ZoomMode")) && (!isInString(configLines[i], "ZoomOffsetX")) && (!isInString(configLines[i], "ZoomOffsetY"))) {
602602
CamZoom_lines = i;
603-
CamZoom_value = alphanumericToBoolean(splitted[1]);
603+
if (splitted.size() < 2) {
604+
CamZoom_value = false;
605+
}
606+
else {
607+
ESP_LOGE(TAG, "splitted[1]: %s", splitted[1].c_str());
608+
CamZoom_value = alphanumericToBoolean(splitted[1]);
609+
}
604610
CamZoom_found = true;
605611
}
606612
else if ((isInString(configLines[i], "ZoomMode")) && (!isInString(configLines[i], "CamZoom"))) {
607613
CamZoomSize_lines = i;
608-
if (isStringNumeric(splitted[1])) {
609-
CamZoomSize_value = std::stof(splitted[1]);
614+
if (splitted.size() < 2) {
615+
CamZoomSize_value = 0;
616+
}
617+
else {
618+
if (isStringNumeric(splitted[1])) {
619+
CamZoomSize_value = std::stof(splitted[1]);
620+
}
621+
else {
622+
CamZoomSize_value = 0;
623+
}
610624
}
611625
CamZoom_found = true;
612626
}
613627
else if ((isInString(configLines[i], "ZoomOffsetX")) && (!isInString(configLines[i], "CamZoom")) && (!isInString(configLines[i], "ZoomOffsetY"))) {
614628
CamZoomOffsetX_lines = i;
615-
if (isStringNumeric(splitted[1])) {
616-
CamZoomOffsetX_value = std::stof(splitted[1]);
629+
if (splitted.size() < 2) {
630+
CamZoomOffsetX_value = 0;
631+
}
632+
else {
633+
if (isStringNumeric(splitted[1])) {
634+
CamZoomOffsetX_value = std::stof(splitted[1]);
635+
}
636+
else {
637+
CamZoomOffsetX_value = 0;
638+
}
617639
}
618640
CamZoom_found = true;
619641
}
620642
else if ((isInString(configLines[i], "ZoomOffsetY")) && (!isInString(configLines[i], "CamZoom")) && (!isInString(configLines[i], "ZoomOffsetX"))) {
621643
CamZoomOffsetY_lines = i;
622-
if (isStringNumeric(splitted[1])) {
623-
CamZoomOffsetY_value = std::stof(splitted[1]);
644+
if (splitted.size() < 2) {
645+
CamZoomOffsetY_value = 0;
646+
}
647+
else {
648+
if (isStringNumeric(splitted[1])) {
649+
CamZoomOffsetY_value = std::stof(splitted[1]);
650+
}
651+
else {
652+
CamZoomOffsetY_value = 0;
653+
}
624654
}
625655
CamZoom_found = true;
626656
}
@@ -909,7 +939,12 @@ bool setCpuFrequency(void) {
909939
splitted = ZerlegeZeile(line);
910940

911941
if (toUpper(splitted[0]) == "CPUFREQUENCY") {
912-
cpuFrequency = splitted[1];
942+
if (splitted.size() < 2) {
943+
cpuFrequency = 160;
944+
}
945+
else {
946+
cpuFrequency = splitted[1];
947+
}
913948
break;
914949
}
915950
}

0 commit comments

Comments
 (0)