Skip to content

Commit ef2a57e

Browse files
committed
codal_port/microbit_spi: Raise ValueError if spi.read arg is negative.
Fixes issue #208. Signed-off-by: Damien George <[email protected]>
1 parent 15b467c commit ef2a57e

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/codal_port/microbit_spi.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,12 @@ MP_DEFINE_CONST_FUN_OBJ_2(microbit_spi_write_obj, microbit_spi_write);
104104

105105
STATIC mp_obj_t microbit_spi_read(size_t n_args, const mp_obj_t *args) {
106106
microbit_spi_check_initialised();
107+
mp_int_t nbytes = mp_obj_get_int(args[1]);
108+
if (nbytes < 0) {
109+
mp_raise_ValueError(MP_ERROR_TEXT("invalid number of bytes"));
110+
}
107111
vstr_t vstr;
108-
vstr_init_len(&vstr, mp_obj_get_int(args[1]));
112+
vstr_init_len(&vstr, nbytes);
109113
uint8_t byte_out = 0;
110114
if (n_args == 3) {
111115
byte_out = mp_obj_get_int(args[2]);

0 commit comments

Comments
 (0)