From c6045e6b3ec81b994b6ec75a1ae559fa6608edba Mon Sep 17 00:00:00 2001 From: nyanpasu64 Date: Thu, 25 May 2023 20:55:48 -0700 Subject: [PATCH] Skip overwriting slots.bin if we fail to read the existing contents Hopefully should guard against slots.bin corruption when the GBS-C crashes. --- gbs-control.ino | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gbs-control.ino b/gbs-control.ino index 6ad50269..fb815e08 100644 --- a/gbs-control.ino +++ b/gbs-control.ino @@ -9560,7 +9560,11 @@ void startWebserver() File slotsBinaryFileRead = SPIFFS.open(SLOTS_FILE, "r"); if (slotsBinaryFileRead) { - slotsBinaryFileRead.read((byte *)&slotsObject, sizeof(slotsObject)); + auto read = slotsBinaryFileRead.read((byte *)&slotsObject, sizeof(slotsObject)); + if (read < sizeof(slotsObject)) { + Serial.print("Failed to read " SLOTS_FILE "!"); + goto fail; + } slotsBinaryFileRead.close(); } else { File slotsBinaryFileWrite = SPIFFS.open(SLOTS_FILE, "w");