summaryrefslogtreecommitdiff
path: root/login/pututline_r.c
diff options
context:
space:
mode:
Diffstat (limited to 'login/pututline_r.c')
-rw-r--r--login/pututline_r.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/login/pututline_r.c b/login/pututline_r.c
index 365a37672e..92ba8fb308 100644
--- a/login/pututline_r.c
+++ b/login/pututline_r.c
@@ -44,9 +44,9 @@ pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data)
struct utmp_data *data_tmp = alloca (sizeof (utmp_data));
struct utmp *dummy;
- memcpy (data_tmp, utmp_data, sizeof (utmp_data));
+ *data_tmp = *utmp_data;
utmp_data = data_tmp;
-
+
if (getutid_r (utmp_ptr, &dummy, utmp_data) < 0)
{
if (errno != ESRCH)
@@ -66,7 +66,7 @@ pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data)
/* XXX An alternative solution would be to call an SUID root program
which write the new value. */
-
+
/* Try to lock the file. */
if (flock (utmp_data->ut_fd, LOCK_EX | LOCK_NB) < 0 && errno != ENOSYS)
{
@@ -76,7 +76,7 @@ pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data)
/* This time we ignore the error. */
(void) flock (utmp_data->ut_fd, LOCK_EX | LOCK_NB);
}
-
+
/* Write the new data. */
if (write (utmp_data->ut_fd, &utmp_data->ubuf, sizeof (struct utmp))
!= sizeof (struct utmp))