diff --git a/applications/services/loader/loader.c b/applications/services/loader/loader.c index 98fd952e7..fcddab408 100644 --- a/applications/services/loader/loader.c +++ b/applications/services/loader/loader.c @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include @@ -13,6 +13,8 @@ #include #include +#include + #define TAG "Loader" #define LOADER_MAGIC_THREAD_VALUE 0xDEADBEEF @@ -489,7 +491,7 @@ static LoaderStatus loader_start_external_app( if(load_status != FlipperApplicationLoadStatusSuccess) { const char* err_msg = flipper_application_load_status_to_string(load_status); status = loader_make_status_error( - LoaderStatusErrorInternal, error_message, "Load failed %s: %s", path, err_msg); + LoaderStatusErrorInternal, error_message, "Load failed, %s: %s", path, err_msg); break; } else if(api_mismatch) { // Successful map, but found api mismatch -> warn user @@ -544,12 +546,12 @@ static LoaderStatus loader_start_external_app( } loader_start_app_thread(loader, flags); - - return status; } while(0); - flipper_application_free(loader->app.fap); - loader->app.fap = NULL; + if(status != LoaderStatusOk) { + flipper_application_free(loader->app.fap); + loader->app.fap = NULL; + } return status; }