]> git.lizzy.rs Git - dragonnet.git/blobdiff - dragonnet/peer.c
Check socket return value
[dragonnet.git] / dragonnet / peer.c
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;
        }