net_udp.cpp: cleanup fixes

- use udp_exit for cleanup if _init fails
- cleanup packet queue with udp_exit
This commit is contained in:
Martin Pulec
2022-11-14 11:24:37 +01:00
parent b584885095
commit f444f2fa50

View File

@@ -911,16 +911,7 @@ socket_udp *udp_init_if(const char *addr, const char *iface, uint16_t rx_port,
return s; return s;
error: error:
if (s->local->rx_fd != INVALID_SOCKET) { udp_exit(s);
CLOSESOCKET(s->local->rx_fd);
}
if (s->local->tx_fd != s->local->rx_fd ||
s->local->tx_fd != INVALID_SOCKET) {
CLOSESOCKET(s->local->tx_fd);
}
simple_linked_list_destroy(s->local->packets);
delete s->local;
delete s;
return NULL; return NULL;
} }
@@ -1014,6 +1005,7 @@ void udp_exit(socket_udp * s)
if (s->local->tx_fd != s->local->rx_fd) { if (s->local->tx_fd != s->local->rx_fd) {
CLOSESOCKET(s->local->tx_fd); CLOSESOCKET(s->local->tx_fd);
} }
simple_linked_list_destroy(s->local->packets);
delete s->local; delete s->local;
} }