summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2023-12-05 13:32:07 +0000
committerGitHub <noreply@github.com>2023-12-05 13:32:07 +0000
commitbba5c14933274d47c88140106de13b1ce9391b01 (patch)
treede89705c7292b951c46f6ba473b34daf7b14165d /lib
parent229633395b8b76732ee8c1502059d8cdf406ea92 (diff)
Avoid exceptions when layouts contain OOB matrix values (#22609)
Diffstat (limited to 'lib')
-rwxr-xr-xlib/python/qmk/cli/generate/keyboard_c.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/python/qmk/cli/generate/keyboard_c.py b/lib/python/qmk/cli/generate/keyboard_c.py
index f8a2372cf3..f010341613 100755
--- a/lib/python/qmk/cli/generate/keyboard_c.py
+++ b/lib/python/qmk/cli/generate/keyboard_c.py
@@ -64,12 +64,15 @@ def _gen_matrix_mask(info_data):
rows = info_data['matrix_size']['rows']
# Default mask to everything disabled
- mask = [['0'] * cols for i in range(rows)]
+ mask = [['0'] * cols for _ in range(rows)]
# Mirror layout macros squashed on top of each other
- for layout_data in info_data['layouts'].values():
+ for layout_name, layout_data in info_data['layouts'].items():
for key_data in layout_data['layout']:
row, col = key_data['matrix']
+ if row >= rows or col >= cols:
+ cli.log.error(f'Skipping matrix_mask due to {layout_name} containing invalid matrix values')
+ return []
mask[row][col] = '1'
lines = []