summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-08-16 19:41:12 +0000
committerUlrich Drepper <drepper@redhat.com>1997-08-16 19:41:12 +0000
commit65307d4417097ffa72a201af0f2644c488dd6073 (patch)
treeb1b15523eb7f9276a619118b3a4f6726be93575d
parent2462764678d7d396bab3706b2be91e2ebfeaf9df (diff)
downloadglibc-65307d4417097ffa72a201af0f2644c488dd6073.tar.gz
glibc-65307d4417097ffa72a201af0f2644c488dd6073.tar.xz
glibc-65307d4417097ffa72a201af0f2644c488dd6073.zip
(login): Correct test for result of utmpname.
Use updwtmp instead of implementing this here again.
-rw-r--r--login/login.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/login/login.c b/login/login.c
index 0df11c6895..4d08dbb472 100644
--- a/login/login.c
+++ b/login/login.c
@@ -23,7 +23,8 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <utmp.h>
-
+
+
 /* Return the result of ttyname in the buffer pointed to by TTY, which should
    be of length BUF_LEN.  If it is too long to fit in this buffer, a
    sufficiently long buffer is allocated using malloc, and returned in TTY.
@@ -65,7 +66,6 @@ tty_name (int fd, char **tty, size_t buf_len)
 	  __set_errno (ENOMEM);
 	  break;
 	}
-
       buf = new_buf;
     }
 
@@ -115,7 +115,7 @@ login (const struct utmp *ut)
       strncpy (copy.ut_line, ttyp, UT_LINESIZE);
 
       /* Tell that we want to use the UTMP file.  */
-      if (utmpname (_PATH_UTMP) != 0)
+      if (utmpname (_PATH_UTMP) == 0)
 	{
 	  struct utmp *old;
 
@@ -137,20 +137,5 @@ login (const struct utmp *ut)
     }
 
   /* Update the WTMP file.  Here we have to add a new entry.  */
-  if (utmpname (_PATH_WTMP) != 0)
-    {
-      struct utmp *up;
-
-      /* Open the WTMP file.  */
-      setutent ();
-
-      /* Position at end of file.  */
-      while (! getutent_r (&utbuf, &up));
-
-      /* Write the new entry.  */
-      pututline (&copy);
-
-      /* Close WTMP file.  */
-      endutent ();
-    }
+  updwtmp (_PATH_WTMP, &copy);
 }