Skip to content

Commit 8daa1be

Browse files
committed
validate bounds of pixel index in make_opaque and is_transparent
1 parent fcf4655 commit 8daa1be

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

shared-bindings/displayio/Palette.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,10 @@ STATIC mp_obj_t displayio_palette_obj_make_opaque(mp_obj_t self_in, mp_obj_t pal
179179
if (!mp_obj_get_int_maybe(palette_index_obj, &palette_index)) {
180180
mp_raise_ValueError(translate("palette_index should be an int"));
181181
}
182+
if (palette_index < 0 || (unsigned)palette_index >= common_hal_displayio_palette_get_len(self)) {
183+
mp_raise_IndexError(translate("palette_index out of bounds"));
184+
}
185+
182186
common_hal_displayio_palette_make_opaque(self, palette_index);
183187
return mp_const_none;
184188
}
@@ -195,6 +199,10 @@ STATIC mp_obj_t displayio_palette_obj_is_transparent(mp_obj_t self_in, mp_obj_t
195199
if (!mp_obj_get_int_maybe(palette_index_obj, &palette_index)) {
196200
mp_raise_ValueError(translate("palette_index should be an int"));
197201
}
202+
if (palette_index < 0 || (unsigned)palette_index >= common_hal_displayio_palette_get_len(self)) {
203+
mp_raise_IndexError(translate("palette_index out of bounds"));
204+
}
205+
198206
return mp_obj_new_bool(common_hal_displayio_palette_is_transparent(self, palette_index));
199207
}
200208
MP_DEFINE_CONST_FUN_OBJ_2(displayio_palette_is_transparent_obj, displayio_palette_obj_is_transparent);

0 commit comments

Comments
 (0)