Skip to content

Commit

Permalink
Desktop: Sanity check PIN length for good measure (flipperdevices#3879)
Browse files Browse the repository at this point in the history
* Desktop: Sanity check PIN length for good measure
* Desktop: replace hardcoded values with macros in desktop_view_pin_input.c

Co-authored-by: あく <[email protected]>
  • Loading branch information
2 people authored and ofabel committed Sep 26, 2024
1 parent d30ce9f commit 0914761
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 3 deletions.
3 changes: 2 additions & 1 deletion applications/services/desktop/helpers/pin_code.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ static uint32_t desktop_pin_code_pack(const DesktopPinCode* pin_code) {
}

bool desktop_pin_code_is_set(void) {
return furi_hal_rtc_get_pin_value() >> DESKTOP_PIN_CODE_LENGTH_OFFSET;
uint8_t length = furi_hal_rtc_get_pin_value() >> DESKTOP_PIN_CODE_LENGTH_OFFSET;
return length >= DESKTOP_PIN_CODE_MIN_LEN && length <= DESKTOP_PIN_CODE_MAX_LEN;
}

void desktop_pin_code_set(const DesktopPinCode* pin_code) {
Expand Down
1 change: 1 addition & 0 deletions applications/services/desktop/helpers/pin_code.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <stdint.h>
#include <stdbool.h>

#define DESKTOP_PIN_CODE_MIN_LEN (4)
#define DESKTOP_PIN_CODE_MAX_LEN (10)

typedef struct {
Expand Down
4 changes: 2 additions & 2 deletions applications/services/desktop/views/desktop_view_pin_input.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#define DEFAULT_PIN_X 64
#define DEFAULT_PIN_Y 32

#define MIN_PIN_LENGTH 4
#define MIN_PIN_LENGTH DESKTOP_PIN_CODE_MIN_LEN
#define MAX_PIN_LENGTH DESKTOP_PIN_CODE_MAX_LEN

struct DesktopViewPinInput {
Expand Down Expand Up @@ -103,7 +103,7 @@ static void desktop_view_pin_input_draw_cells(Canvas* canvas, DesktopViewPinInpu
furi_assert(canvas);
furi_assert(model);

uint8_t draw_pin_size = MAX(4, model->pin.length + 1);
uint8_t draw_pin_size = MAX(MIN_PIN_LENGTH, model->pin.length + 1);
if(model->locked_input || (model->pin.length == MAX_PIN_LENGTH)) {
draw_pin_size = model->pin.length;
}
Expand Down

0 comments on commit 0914761

Please sign in to comment.