Skip to content

Commit cb4fbc8

Browse files
committed
unix/modsocket: accept(): Make IPv6-clean.
By reserving enough space for peer address.
1 parent f22844b commit cb4fbc8

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

unix/modsocket.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,11 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(socket_listen_obj, socket_listen);
155155

156156
STATIC mp_obj_t socket_accept(mp_obj_t self_in) {
157157
mp_obj_socket_t *self = MP_OBJ_TO_PTR(self_in);
158-
struct sockaddr addr;
158+
// sockaddr_storage isn't stack-friendly (129 bytes or so)
159+
//struct sockaddr_storage addr;
160+
byte addr[32];
159161
socklen_t addr_len = sizeof(addr);
160-
int fd = accept(self->fd, &addr, &addr_len);
162+
int fd = accept(self->fd, (struct sockaddr*)&addr, &addr_len);
161163
RAISE_ERRNO(fd, errno);
162164

163165
mp_obj_tuple_t *t = MP_OBJ_TO_PTR(mp_obj_new_tuple(2, NULL));

0 commit comments

Comments
 (0)