swrap: Add common exit point to swrap_connect
authorAnoop C S <anoopcs@redhat.com>
Thu, 13 Jul 2017 00:30:14 +0000 (02:30 +0200)
committerMichael Adam <obnox@samba.org>
Thu, 27 Jul 2017 12:15:55 +0000 (14:15 +0200)
In preparation of thread safety.

Signed-off-by: Anoop C S <anoopcs@redhat.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
src/socket_wrapper.c

index 518f838f30c81fa977084535069f34e2f0ff0e25..d4855b14ce6893bb37f7d172b9cd412a3fc1c7b4 100644 (file)
@@ -3294,24 +3294,26 @@ static int swrap_connect(int s, const struct sockaddr *serv_addr,
        if (si->bound == 0) {
                ret = swrap_auto_bind(s, si, serv_addr->sa_family);
                if (ret == -1) {
-                       return -1;
+                       goto done;
                }
        }
 
        if (si->family != serv_addr->sa_family) {
                errno = EINVAL;
-               return -1;
+               ret = -1;
+               goto done;
        }
 
        ret = sockaddr_convert_to_un(si, serv_addr,
                                     addrlen, &un_addr.sa.un, 0, &bcast);
        if (ret == -1) {
-               return -1;
+               goto done;
        }
 
        if (bcast) {
                errno = ENETUNREACH;
-               return -1;
+               ret = -1;
+               goto done;
        }
 
        if (si->type == SOCK_DGRAM) {
@@ -3371,6 +3373,7 @@ static int swrap_connect(int s, const struct sockaddr *serv_addr,
                swrap_pcap_dump_packet(si, serv_addr, SWRAP_CONNECT_UNREACH, NULL, 0);
        }
 
+done:
        return ret;
 }