From 356f2ea3acb517cca7007556074aa0ed94b48876 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Mon, 25 Apr 2022 14:09:21 +0200 Subject: [PATCH] Check socket return value --- dragonnet/listen.c | 8 +++++++- dragonnet/peer.c | 8 ++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/dragonnet/listen.c b/dragonnet/listen.c index a42066f..303ccad 100644 --- a/dragonnet/listen.c +++ b/dragonnet/listen.c @@ -53,8 +53,14 @@ DragonnetListener *dragonnet_listener_new(char *addr) DragonnetListener *l = malloc(sizeof *l); + if ((l->sock = socket(info->ai_family, info->ai_socktype, info->ai_protocol)) < 0) { + perror("socket"); + freeaddrinfo(info); + free(l); + return NULL; + } + l->active = true; - l->sock = socket(info->ai_family, info->ai_socktype, info->ai_protocol); l->address = dragonnet_addr2str(info->ai_addr, info->ai_addrlen); l->on_connect = NULL; l->on_disconnect = NULL; diff --git a/dragonnet/peer.c b/dragonnet/peer.c index f4c5685..95877bf 100644 --- a/dragonnet/peer.c +++ b/dragonnet/peer.c @@ -16,12 +16,16 @@ static bool dragonnet_peer_init(DragonnetPeer *p, char *addr) if (!info) return false; - p->sock = socket(info->ai_family, info->ai_socktype, info->ai_protocol); + if ((p->sock = socket(info->ai_family, info->ai_socktype, info->ai_protocol)) < 0) { + perror("socket"); + freeaddrinfo(info); + return false; + } p->address = dragonnet_addr2str(info->ai_addr, info->ai_addrlen); if (connect(p->sock, info->ai_addr, info->ai_addrlen) < 0) { - freeaddrinfo(info); perror("connect"); + freeaddrinfo(info); return false; } -- 2.44.0