fix(display): widgets: increase buffer size for symbols

Increase buffer size used for placing LVGL symbols on displays. This
prevents array overflow warnings as discussed in #2444.

Also convert one sprintf to snprintf to ensure the buffers are always
null terminated and never overflow.

Signed-off-by: Mike Szczys <szczys@hotmail.com>
This commit is contained in:
Mike Szczys 2024-08-27 21:56:11 -05:00
parent 6946ca8b07
commit e35ea5aac8
2 changed files with 5 additions and 5 deletions

View file

@ -24,13 +24,13 @@ struct layer_status_state {
static void set_layer_symbol(lv_obj_t *label, struct layer_status_state state) { static void set_layer_symbol(lv_obj_t *label, struct layer_status_state state) {
if (state.label == NULL) { if (state.label == NULL) {
char text[7] = {}; char text[8] = {};
sprintf(text, LV_SYMBOL_KEYBOARD " %i", state.index); snprintf(text, sizeof(text), LV_SYMBOL_KEYBOARD " %i", state.index);
lv_label_set_text(label, text); lv_label_set_text(label, text);
} else { } else {
char text[13] = {}; char text[14] = {};
snprintf(text, sizeof(text), LV_SYMBOL_KEYBOARD " %s", state.label); snprintf(text, sizeof(text), LV_SYMBOL_KEYBOARD " %s", state.label);

View file

@ -35,7 +35,7 @@ static struct output_status_state get_state(const zmk_event_t *_eh) {
} }
static void set_status_symbol(lv_obj_t *label, struct output_status_state state) { static void set_status_symbol(lv_obj_t *label, struct output_status_state state) {
char text[10] = {}; char text[20] = {};
switch (state.selected_endpoint.transport) { switch (state.selected_endpoint.transport) {
case ZMK_TRANSPORT_USB: case ZMK_TRANSPORT_USB: