From dd646a64a688a403dc15f0710cb7cdfdb601f28e Mon Sep 17 00:00:00 2001 From: Piotr Rzeszut Date: Thu, 26 Dec 2024 01:25:54 +0100 Subject: [PATCH] Add additional file exists check to remove errors --- armsrc/appmain.c | 19 ++++++++++++++++--- armsrc/mifarecmd.c | 8 ++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/armsrc/appmain.c b/armsrc/appmain.c index bec1de61a..b9314a0a3 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -441,22 +441,35 @@ static void SendStatus(uint32_t wait) { #ifdef WITH_FLASH DbpString(_CYAN_("Flash memory dictionary loaded")); + uint32_t num = 0; - uint32_t num = size_in_spiffs(MF_KEYS_FILE) / MF_KEY_LENGTH; + if (exists_in_spiffs(MF_KEYS_FILE)) { + num = size_in_spiffs(MF_KEYS_FILE) / MF_KEY_LENGTH; + } else { + num = 0; + } if (num > 0) { Dbprintf(" Mifare.................. "_YELLOW_("%u")" keys (spiffs: "_GREEN_("%s")")", num, MF_KEYS_FILE); } else { Dbprintf(" Mifare.................. "_RED_("%u")" keys (spiffs: "_RED_("%s")")", num, MF_KEYS_FILE); } - num = size_in_spiffs(T55XX_KEYS_FILE) / T55XX_KEY_LENGTH; + if (exists_in_spiffs(T55XX_KEYS_FILE)) { + num = size_in_spiffs(T55XX_KEYS_FILE) / T55XX_KEY_LENGTH; + } else { + num = 0; + } if (num > 0) { Dbprintf(" T55xx................... "_YELLOW_("%u")" keys (spiffs: "_GREEN_("%s")")", num, T55XX_KEYS_FILE); } else { Dbprintf(" T55xx................... "_RED_("%u")" keys (spiffs: "_RED_("%s")")", num, T55XX_KEYS_FILE); } - num = size_in_spiffs(ICLASS_KEYS_FILE) / ICLASS_KEY_LENGTH; + if (exists_in_spiffs(ICLASS_KEYS_FILE)) { + num = size_in_spiffs(ICLASS_KEYS_FILE) / ICLASS_KEY_LENGTH; + } else { + num = 0; + } if (num > 0) { Dbprintf(" iClass.................. "_YELLOW_("%u")" keys (spiffs: "_GREEN_("%s")")", num, ICLASS_KEYS_FILE); } else { diff --git a/armsrc/mifarecmd.c b/armsrc/mifarecmd.c index 984937c4f..271d87cc4 100644 --- a/armsrc/mifarecmd.c +++ b/armsrc/mifarecmd.c @@ -1901,9 +1901,13 @@ void MifareChkKeys_fast(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *da if (use_flashmem) { BigBuf_free(); uint32_t size = 0; - size = size_in_spiffs(MF_KEYS_FILE); - if (size <= 0) + if (exists_in_spiffs(MF_KEYS_FILE)) { + size = size_in_spiffs(MF_KEYS_FILE); + } + if (size == 0) { + Dbprintf("Spiffs file: %s does not exists or empty.", MF_KEYS_FILE); goto OUT; + } keyCount = size / MF_KEY_LENGTH;