Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolay Minaylov <nm29719@gmail.com>2022-02-10 16:01:49 +0300
committerGitHub <noreply@github.com>2022-02-10 16:01:49 +0300
commit2a52d2d6201e46cceaa9f610792be20bbec9bb09 (patch)
treec06bf012a1046cbe5808218da95e61a6702200d2 /firmware
parentdf2d1ad13f505332661b0bcc7605744a6a55b7cb (diff)
[FL-2216, FL-2233] Archive fixes (#987)
* archive: badusb, u2f and various fixes * archive: delete confirmation * badusb: removed empty string check * string pointer check * FuriHal: insomnia overflow assert, fix double insomnia exit in ble. BadUsb: fix uncommitted model. * view update fixes in gpio, badusb, u2f Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Diffstat (limited to 'firmware')
-rw-r--r--firmware/targets/f6/ble_glue/ble_glue.c4
-rw-r--r--firmware/targets/f6/furi_hal/furi_hal_power.c2
-rw-r--r--firmware/targets/f7/ble_glue/ble_glue.c4
-rw-r--r--firmware/targets/f7/furi_hal/furi_hal_power.c2
4 files changed, 10 insertions, 2 deletions
diff --git a/firmware/targets/f6/ble_glue/ble_glue.c b/firmware/targets/f6/ble_glue/ble_glue.c
index c38c0731..6e55b368 100644
--- a/firmware/targets/f6/ble_glue/ble_glue.c
+++ b/firmware/targets/f6/ble_glue/ble_glue.c
@@ -116,6 +116,7 @@ void ble_glue_init() {
bool ble_glue_wait_for_fus_start(WirelessFwInfo_t* info) {
bool ret = false;
+
size_t countdown = 1000;
while(countdown > 0) {
if(ble_glue->status == BleGlueStatusFusStarted) {
@@ -125,13 +126,14 @@ bool ble_glue_wait_for_fus_start(WirelessFwInfo_t* info) {
countdown--;
osDelay(1);
}
+
if(ble_glue->status == BleGlueStatusFusStarted) {
SHCI_GetWirelessFwInfo(info);
} else {
FURI_LOG_E(TAG, "Failed to start FUS");
ble_glue->status = BleGlueStatusBroken;
}
- furi_hal_power_insomnia_exit();
+
return ret;
}
diff --git a/firmware/targets/f6/furi_hal/furi_hal_power.c b/firmware/targets/f6/furi_hal/furi_hal_power.c
index 1dbdb3dd..a211b8c5 100644
--- a/firmware/targets/f6/furi_hal/furi_hal_power.c
+++ b/firmware/targets/f6/furi_hal/furi_hal_power.c
@@ -90,12 +90,14 @@ uint16_t furi_hal_power_insomnia_level() {
void furi_hal_power_insomnia_enter() {
vTaskSuspendAll();
+ furi_assert(furi_hal_power.insomnia < UINT8_MAX);
furi_hal_power.insomnia++;
xTaskResumeAll();
}
void furi_hal_power_insomnia_exit() {
vTaskSuspendAll();
+ furi_assert(furi_hal_power.insomnia > 0);
furi_hal_power.insomnia--;
xTaskResumeAll();
}
diff --git a/firmware/targets/f7/ble_glue/ble_glue.c b/firmware/targets/f7/ble_glue/ble_glue.c
index c38c0731..6e55b368 100644
--- a/firmware/targets/f7/ble_glue/ble_glue.c
+++ b/firmware/targets/f7/ble_glue/ble_glue.c
@@ -116,6 +116,7 @@ void ble_glue_init() {
bool ble_glue_wait_for_fus_start(WirelessFwInfo_t* info) {
bool ret = false;
+
size_t countdown = 1000;
while(countdown > 0) {
if(ble_glue->status == BleGlueStatusFusStarted) {
@@ -125,13 +126,14 @@ bool ble_glue_wait_for_fus_start(WirelessFwInfo_t* info) {
countdown--;
osDelay(1);
}
+
if(ble_glue->status == BleGlueStatusFusStarted) {
SHCI_GetWirelessFwInfo(info);
} else {
FURI_LOG_E(TAG, "Failed to start FUS");
ble_glue->status = BleGlueStatusBroken;
}
- furi_hal_power_insomnia_exit();
+
return ret;
}
diff --git a/firmware/targets/f7/furi_hal/furi_hal_power.c b/firmware/targets/f7/furi_hal/furi_hal_power.c
index 1dbdb3dd..a211b8c5 100644
--- a/firmware/targets/f7/furi_hal/furi_hal_power.c
+++ b/firmware/targets/f7/furi_hal/furi_hal_power.c
@@ -90,12 +90,14 @@ uint16_t furi_hal_power_insomnia_level() {
void furi_hal_power_insomnia_enter() {
vTaskSuspendAll();
+ furi_assert(furi_hal_power.insomnia < UINT8_MAX);
furi_hal_power.insomnia++;
xTaskResumeAll();
}
void furi_hal_power_insomnia_exit() {
vTaskSuspendAll();
+ furi_assert(furi_hal_power.insomnia > 0);
furi_hal_power.insomnia--;
xTaskResumeAll();
}