Skip to content

Commit 949a49c

Browse files
committed
modsocket: Add call to freeaddrinfo().
1 parent 69d0a1c commit 949a49c

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

unix/modsocket.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -368,18 +368,18 @@ STATIC mp_obj_t mod_socket_getaddrinfo(uint n_args, const mp_obj_t *args) {
368368
}
369369

370370
struct addrinfo hints;
371-
struct addrinfo *addr;
371+
struct addrinfo *addr_list;
372372
memset(&hints, 0, sizeof(hints));
373-
int res = getaddrinfo(host, serv, NULL/*&hints*/, &addr);
373+
int res = getaddrinfo(host, serv, NULL/*&hints*/, &addr_list);
374374

375375
if (res != 0) {
376376
// CPython: socket.gaierror
377377
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_OSError, "[addrinfo error %d]", res));
378378
}
379-
assert(addr);
379+
assert(addr_list);
380380

381381
mp_obj_t list = mp_obj_new_list(0, NULL);
382-
for (; addr; addr = addr->ai_next) {
382+
for (struct addrinfo *addr = addr_list; addr; addr = addr->ai_next) {
383383
mp_obj_tuple_t *t = mp_obj_new_tuple(5, NULL);
384384
t->items[0] = MP_OBJ_NEW_SMALL_INT((machine_int_t)addr->ai_family);
385385
t->items[1] = MP_OBJ_NEW_SMALL_INT((machine_int_t)addr->ai_socktype);
@@ -394,6 +394,7 @@ STATIC mp_obj_t mod_socket_getaddrinfo(uint n_args, const mp_obj_t *args) {
394394
t->items[4] = mp_obj_new_bytearray(addr->ai_addrlen, addr->ai_addr);
395395
mp_obj_list_append(list, t);
396396
}
397+
freeaddrinfo(addr_list);
397398
return list;
398399
}
399400
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_socket_getaddrinfo_obj, 2, 6, mod_socket_getaddrinfo);

0 commit comments

Comments
 (0)