BadKB setting string size fixes

This commit is contained in:
Willy-JL
2023-06-12 03:21:58 +01:00
parent d3ded38ee6
commit 98579acf2d
4 changed files with 14 additions and 11 deletions
+3 -3
View File
@@ -46,7 +46,7 @@ static void bad_kb_load_settings(BadKbApp* app) {
furi_string_reset(app->keyboard_layout);
}
if(flipper_format_read_string(file, "Bt_Name", tmp_str) && !furi_string_empty(tmp_str)) {
strcpy(cfg->bt_name, furi_string_get_cstr(tmp_str));
strlcpy(cfg->bt_name, furi_string_get_cstr(tmp_str), BAD_KB_NAME_LEN);
} else {
strcpy(cfg->bt_name, "");
}
@@ -54,13 +54,13 @@ static void bad_kb_load_settings(BadKbApp* app) {
memcpy(cfg->bt_mac, BAD_KB_EMPTY_MAC, BAD_KB_MAC_LEN);
}
if(flipper_format_read_string(file, "Usb_Manuf", tmp_str) && !furi_string_empty(tmp_str)) {
strcpy(cfg->usb_cfg.manuf, furi_string_get_cstr(tmp_str));
strlcpy(cfg->usb_cfg.manuf, furi_string_get_cstr(tmp_str), BAD_KB_USB_LEN);
} else {
strcpy(cfg->usb_cfg.manuf, "");
}
if(flipper_format_read_string(file, "Usb_Product", tmp_str) &&
!furi_string_empty(tmp_str)) {
strcpy(cfg->usb_cfg.product, furi_string_get_cstr(tmp_str));
strlcpy(cfg->usb_cfg.product, furi_string_get_cstr(tmp_str), BAD_KB_USB_LEN);
} else {
strcpy(cfg->usb_cfg.product, "");
}
@@ -105,6 +105,7 @@ BadKbState* bad_kb_script_get_state(BadKbScript* bad_kb);
#define BAD_KB_NAME_LEN FURI_HAL_BT_ADV_NAME_LENGTH
#define BAD_KB_MAC_LEN GAP_MAC_ADDR_SIZE
#define BAD_KB_USB_LEN HID_MANUF_PRODUCT_NAME_LEN
extern const uint8_t BAD_KB_EMPTY_MAC[BAD_KB_MAC_LEN];
extern uint8_t BAD_KB_BOUND_MAC[BAD_KB_MAC_LEN]; // For remember mode
@@ -137,7 +138,7 @@ struct BadKbApp {
VariableItemList* var_item_list;
TextInput* text_input;
ByteInput* byte_input;
char usb_name_buf[32];
char usb_name_buf[BAD_KB_USB_LEN];
uint16_t usb_vidpid_buf[2];
char bt_name_buf[BAD_KB_NAME_LEN];
uint8_t bt_mac_buf[BAD_KB_MAC_LEN];
@@ -11,10 +11,10 @@ void bad_kb_scene_config_usb_name_on_enter(void* context) {
TextInput* text_input = bad_kb->text_input;
if(scene_manager_get_scene_state(bad_kb->scene_manager, BadKbSceneConfigUsbName)) {
strlcpy(bad_kb->usb_name_buf, bad_kb->config.usb_cfg.manuf, 32);
strlcpy(bad_kb->usb_name_buf, bad_kb->config.usb_cfg.manuf, BAD_KB_USB_LEN);
text_input_set_header_text(text_input, "Set USB manufacturer name");
} else {
strlcpy(bad_kb->usb_name_buf, bad_kb->config.usb_cfg.product, 32);
strlcpy(bad_kb->usb_name_buf, bad_kb->config.usb_cfg.product, BAD_KB_USB_LEN);
text_input_set_header_text(text_input, "Set USB product name");
}
@@ -23,7 +23,7 @@ void bad_kb_scene_config_usb_name_on_enter(void* context) {
bad_kb_scene_config_usb_name_text_input_callback,
bad_kb,
bad_kb->usb_name_buf,
32,
BAD_KB_USB_LEN,
true);
view_dispatcher_switch_to_view(bad_kb->view_dispatcher, BadKbAppViewTextInput);
@@ -37,9 +37,9 @@ bool bad_kb_scene_config_usb_name_on_event(void* context, SceneManagerEvent even
consumed = true;
if(event.event == BadKbAppCustomEventTextInputDone) {
if(scene_manager_get_scene_state(bad_kb->scene_manager, BadKbSceneConfigUsbName)) {
strlcpy(bad_kb->config.usb_cfg.manuf, bad_kb->usb_name_buf, 32);
strlcpy(bad_kb->config.usb_cfg.manuf, bad_kb->usb_name_buf, BAD_KB_USB_LEN);
} else {
strlcpy(bad_kb->config.usb_cfg.product, bad_kb->usb_name_buf, 32);
strlcpy(bad_kb->config.usb_cfg.product, bad_kb->usb_name_buf, BAD_KB_USB_LEN);
}
bad_kb_config_refresh(bad_kb);
}
@@ -9,6 +9,8 @@
extern "C" {
#endif
#define HID_MANUF_PRODUCT_NAME_LEN 32
#define HID_VID_DEFAULT 0x046D
#define HID_PID_DEFAULT 0xC529
@@ -167,8 +169,8 @@ typedef struct {
// Good job knobheads, these should be uint16_t
uint32_t vid;
uint32_t pid;
char manuf[32];
char product[32];
char manuf[HID_MANUF_PRODUCT_NAME_LEN];
char product[HID_MANUF_PRODUCT_NAME_LEN];
} FuriHalUsbHidConfig;
typedef void (*HidStateCallback)(bool state, void* context);