diff options
author | iabdalkader <i.abdalkader@gmail.com> | 2019-09-13 19:57:23 +0200 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2019-09-17 12:30:10 +1000 |
commit | 73c94bbbd45c01c3236282e7b334e4539ca043d4 (patch) | |
tree | 2acc8fb3205685a85bc858a12930a5ed73739507 | |
parent | f469634c0c72abb1af790b4ed43aae756d333412 (diff) |
stm32/modusocket: Fix NULL deref when accept() an unbound socket.
-rw-r--r-- | ports/stm32/modusocket.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ports/stm32/modusocket.c b/ports/stm32/modusocket.c index 7503ecbd6..5a1633113 100644 --- a/ports/stm32/modusocket.c +++ b/ports/stm32/modusocket.c @@ -125,6 +125,11 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_listen_obj, socket_listen); STATIC mp_obj_t socket_accept(mp_obj_t self_in) { mod_network_socket_obj_t *self = MP_OBJ_TO_PTR(self_in); + if (self->nic == MP_OBJ_NULL) { + // not bound + mp_raise_OSError(MP_EINVAL); + } + // create new socket object // starts with empty NIC so that finaliser doesn't run close() method if accept() fails mod_network_socket_obj_t *socket2 = m_new_obj_with_finaliser(mod_network_socket_obj_t); |