]> git.lizzy.rs Git - dragonnet.git/commitdiff
Check socket return value
authorElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 25 Apr 2022 12:09:21 +0000 (14:09 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 25 Apr 2022 12:09:21 +0000 (14:09 +0200)
dragonnet/listen.c
dragonnet/peer.c

index a42066f64c4cd847a18f8e4943f031258bbf33a1..303ccaddebc72457ac0492fd4df860682f1ecb32 100644 (file)
@@ -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;
index f4c56851c41e2c87f2ceb54de657931b3dbb55b4..95877bfed9de6752accd02ea96543fa3edb4eea1 100644 (file)
@@ -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;
        }