From 7ff785d71faa28fe1434fcc4bf6721e898c34d86 Mon Sep 17 00:00:00 2001 From: RebornedBrain <138568282+RebornedBrain@users.noreply.github.com> Date: Sat, 8 Jun 2024 14:51:54 +0300 Subject: [PATCH] [FL-3786] Fixed infinite loop in dictionary attack scene (#3686) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: あく --- .../helpers/protocol_support/mf_classic/mf_classic.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/applications/main/nfc/helpers/protocol_support/mf_classic/mf_classic.c b/applications/main/nfc/helpers/protocol_support/mf_classic/mf_classic.c index 6abaa48cd..7a51e3d86 100644 --- a/applications/main/nfc/helpers/protocol_support/mf_classic/mf_classic.c +++ b/applications/main/nfc/helpers/protocol_support/mf_classic/mf_classic.c @@ -197,7 +197,10 @@ static bool nfc_scene_read_menu_on_event_mf_classic(NfcApp* instance, SceneManag dolphin_deed(DolphinDeedNfcDetectReader); consumed = true; } else if(event.event == SubmenuIndexDictAttack) { - scene_manager_next_scene(instance->scene_manager, NfcSceneMfClassicDictAttack); + if(!scene_manager_search_and_switch_to_previous_scene( + instance->scene_manager, NfcSceneMfClassicDictAttack)) { + scene_manager_next_scene(instance->scene_manager, NfcSceneMfClassicDictAttack); + } consumed = true; } else if(event.event == SubmenuIndexCommonEdit) { scene_manager_next_scene(instance->scene_manager, NfcSceneSetUid); @@ -222,7 +225,10 @@ static bool nfc_scene_saved_menu_on_event_mf_classic(NfcApp* instance, SceneMana scene_manager_next_scene(instance->scene_manager, NfcSceneMfClassicUpdateInitial); consumed = true; } else if(event.event == SubmenuIndexDictAttack) { - scene_manager_next_scene(instance->scene_manager, NfcSceneMfClassicDictAttack); + if(!scene_manager_search_and_switch_to_previous_scene( + instance->scene_manager, NfcSceneMfClassicDictAttack)) { + scene_manager_next_scene(instance->scene_manager, NfcSceneMfClassicDictAttack); + } consumed = true; } }