noip.c (fixup_client_socket): Reorder the preflight checks.
[preload-hacks] / noip.c
diff --git a/noip.c b/noip.c
index fd86cb3..66c6ba5 100644 (file)
--- a/noip.c
+++ b/noip.c
@@ -1002,6 +1002,11 @@ static int fixup_client_socket(int sk, const struct sockaddr **sa_r,
   socklen_t mylen = sizeof(*sun);
   const struct sockaddr *sa = *sa_r;
 
+  /* If this isn't a Unix-domain socket then there's nothing to do. */
+  if (real_getsockname(sk, SA(sun), &mylen) < 0) return (-1);
+  if (sun->sun_family != AF_UNIX) return (0);
+  if (mylen < sizeof(*sun)) ((char *)sun)[mylen] = 0;
+
   /* If we're allowed to talk to a real remote endpoint, then fix things up
    * as necessary and proceed.
    */
@@ -1010,11 +1015,6 @@ static int fixup_client_socket(int sk, const struct sockaddr **sa_r,
     return (0);
   }
 
-  /* If this isn't a Unix-domain socket then there's nothing to do. */
-  if (real_getsockname(sk, SA(sun), &mylen) < 0) return (-1);
-  if (sun->sun_family != AF_UNIX) return (0);
-  if (mylen < sizeof(*sun)) ((char *)sun)[mylen] = 0;
-
   /* Speaking of which, if we don't have a local address, then we should
    * arrange one now.
    */