mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
examples/dtls-sock: fix error handling in client
Not closing a stack allocated socket before going out of scope of the allocation is something to avoid. This fixes crashes at runtime when adding the credentials fails.
This commit is contained in:
parent
26682d882a
commit
ed4b777b29
@ -155,6 +155,7 @@ static int client_send(char *addr_str, char *data, size_t datalen)
|
||||
if (res < 0 && res != CREDMAN_EXIST) {
|
||||
/* ignore duplicate credentials */
|
||||
printf("Error cannot add credential to system: %" PRIdSIZE "\n", res);
|
||||
sock_udp_close(&udp_sock);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -171,12 +172,14 @@ static int client_send(char *addr_str, char *data, size_t datalen)
|
||||
if (res < 0 && res != CREDMAN_EXIST) {
|
||||
/* ignore duplicate credentials */
|
||||
printf("Error cannot add credential to system: %" PRIdSIZE "\n", res);
|
||||
sock_udp_close(&udp_sock);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* make the new credential available to the sock */
|
||||
if (sock_dtls_add_credential(&dtls_sock, SOCK_DTLS_CLIENT_TAG_1) < 0) {
|
||||
printf("Error cannot add credential to the sock: %" PRIdSIZE "\n", res);
|
||||
sock_udp_close(&udp_sock);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -186,6 +189,7 @@ static int client_send(char *addr_str, char *data, size_t datalen)
|
||||
|
||||
res = sock_dtls_session_init(&dtls_sock, &remote, &session);
|
||||
if (res <= 0) {
|
||||
sock_udp_close(&udp_sock);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user