about summary refs log tree commit diff
path: root/sysdeps/unix/getlogin_r.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/getlogin_r.c')
-rw-r--r--sysdeps/unix/getlogin_r.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c
index 15afdee63c..154a9d3a59 100644
--- a/sysdeps/unix/getlogin_r.c
+++ b/sysdeps/unix/getlogin_r.c
@@ -39,7 +39,7 @@ getlogin_r (name, name_len)
   char *real_tty_path = tty_pathname;
   int result = 0;
   struct utmp_data utmp_data;
-  struct utmp *ut;
+  struct utmp *ut, line;
 
   {
     int err;
@@ -61,7 +61,8 @@ getlogin_r (name, name_len)
   real_tty_path += 5;		/* Remove "/dev/".  */
 
   setutent_r (&utmp_data);
-  if (getutline_r (real_tty_path, &ut, &utmp_data) < 0)
+  strncpy (line.ut_line, real_tty_path, sizeof line.ut_line);
+  if (getutline_r (&line, &ut, &utmp_data) < 0)
     {
       if (errno == ESRCH)
 	/* The caller expects ENOENT if nothing is found.  */