(nscd_open_socket): Safe and reset errno so that a failure to connect
authordrepper <drepper>
Wed, 4 Mar 1998 17:13:20 +0000 (17:13 +0000)
committerdrepper <drepper>
Wed, 4 Mar 1998 17:13:20 +0000 (17:13 +0000)
to nscd doesn't change errno.

nscd/nscd_getgr_r.c
nscd/nscd_getpw_r.c

index f133530..596e31f 100644 (file)
@@ -67,16 +67,21 @@ nscd_open_socket (void)
 {
   struct sockaddr_un addr;
   int sock;
+  int saved_errno = errno;
 
   sock = socket (PF_UNIX, SOCK_STREAM, 0);
   if (sock < 0)
-    return -1;
+    {
+      __set_errno (saved_errno);
+      return -1;
+    }
 
   addr.sun_family = AF_UNIX;
   strcpy (addr.sun_path, _PATH_NSCDSOCKET);
   if (connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0)
     {
       close (sock);
+      __set_errno (saved_errno);
       return -1;
     }
 
index c956abc..4fc78e1 100644 (file)
@@ -67,16 +67,21 @@ nscd_open_socket (void)
 {
   struct sockaddr_un addr;
   int sock;
+  int saved_errno = errno;
 
   sock = socket (PF_UNIX, SOCK_STREAM, 0);
   if (sock < 0)
-    return -1;
+    {
+      __set_errno (saved_errno);
+      return -1;
+    }
 
   addr.sun_family = AF_UNIX;
   strcpy (addr.sun_path, _PATH_NSCDSOCKET);
   if (connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0)
     {
       close (sock);
+      __set_errno (saved_errno);
       return -1;
     }