about summary refs log tree commit diff
path: root/login
diff options
context:
space:
mode:
Diffstat (limited to 'login')
-rw-r--r--login/pututline_r.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/login/pututline_r.c b/login/pututline_r.c
index 07322e5740..824cf3a391 100644
--- a/login/pututline_r.c
+++ b/login/pututline_r.c
@@ -24,13 +24,14 @@ Boston, MA 02111-1307, USA.  */
 #include <unistd.h>
 #include <utmp.h>
 #include <sys/file.h>
+#include <sys/stat.h>
 
 
 /* XXX An alternative solution would be to call a SUID root program
    which write the new value.  */
 
 int
-pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data)
+pututline_r (const struct utmp *id, struct utmp_data *utmp_data)
 {
   struct stat st;
   int result = 0;
@@ -59,17 +60,16 @@ pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data)
 
 #if _HAVE_UT_TYPE - 0
   /* Seek position to write.  */
-  if (utmp_data->ubuf.ut_type != utmp_ptr->ut_type)
+  if (utmp_data->ubuf.ut_type != id->ut_type)
     {
       /* We must not overwrite the data in UTMP_DATA.  */
       struct utmp_data *data_tmp = alloca (sizeof (utmp_data));
       struct utmp *dummy;
-      off_t new_pos;
 
       *data_tmp = *utmp_data;
       utmp_data = data_tmp;
 
-      if (getutid_r (utmp_ptr, &dummy, utmp_data) < 0)
+      if (getutid_r (id, &dummy, utmp_data) < 0)
 	{
 	  if (errno != ESRCH)
 	    /* Some error occured.  If no entry was found, the position
@@ -78,6 +78,7 @@ pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data)
 
 	  /* Set position pointer to position after adding of the record.  */
 	  utmp_data->loc_utmp += sizeof (struct utmp);
+	}
     }
 #endif
 
@@ -102,7 +103,7 @@ pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data)
     }
 
   /* Write the new data.  */
-  if (write (utmp_data->ut_fd, utmp_ptr, sizeof (struct utmp))
+  if (write (utmp_data->ut_fd, id, sizeof (struct utmp))
       != sizeof (struct utmp))
     {
       /* If we appended a new record this is only partially written.