aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-08-15 16:09:43 +0200
committerFlorian Weimer <fweimer@redhat.com>2019-08-15 16:09:43 +0200
commitc2adefbafcdd2519ff43eca6891c77cd7b29ab62 (patch)
tree44ad3044ceb469239af4c1fb1bf3ca0335454f95
parent0d5b2917530ccaf8ad312dfbb7bce69d569c23ad (diff)
downloadglibc-c2adefbafcdd2519ff43eca6891c77cd7b29ab62.zip
glibc-c2adefbafcdd2519ff43eca6891c77cd7b29ab62.tar.gz
glibc-c2adefbafcdd2519ff43eca6891c77cd7b29ab62.tar.bz2
login: Add nonstring attributes to struct utmp, struct utmpx [BZ #24899]
Commit 7532837d7b03b3ca5b9a63d77a5bd81dd23f3d9c ("The -Wstringop-truncation option new in GCC 8 detects common misuses") added __attribute_nonstring__ to bits/utmp.h, but it did not update the parallel bits/utmpx.h header. In struct utmp, the nonstring attribute for ut_id was missing.
-rw-r--r--ChangeLog12
-rw-r--r--bits/utmp.h3
-rw-r--r--sysdeps/gnu/bits/utmpx.h12
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/utmp.h3
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/utmpx.h12
5 files changed, 32 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index b13346c..c49d952 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2019-08-15 Florian Weimer <fweimer@redhat.com>
+ [BZ #24899]
+ * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add
+ __attribute_nonstring__ to ut_line, ut_id, ut_user, ut_host.
+ * sysdeps/unix/sysv/linux/s390/bits/utmpx.h (struct utmpx):
+ Likewise.
+ * sysdeps/gnu/bits/utmp.h (struct utmp): Add
+ __attribute_nonstring__ to ut_id.
+ * sysdeps/unix/sysv/linux/s390/bits/utmpx.h (struct utmp):
+ Likewise.
+
+2019-08-15 Florian Weimer <fweimer@redhat.com>
+
[BZ #24880]
* login/utmp_file.c (file_locking_failed): Use struct flock64.
(file_locking_unlock): Likewise.
diff --git a/bits/utmp.h b/bits/utmp.h
index 3c02dd4..854b342 100644
--- a/bits/utmp.h
+++ b/bits/utmp.h
@@ -61,7 +61,8 @@ struct utmp
pid_t ut_pid; /* Process ID of login process. */
char ut_line[UT_LINESIZE]
__attribute_nonstring__; /* Devicename. */
- char ut_id[4]; /* Inittab ID. */
+ char ut_id[4]
+ __attribute_nonstring__; /* Inittab ID. */
char ut_user[UT_NAMESIZE]
__attribute_nonstring__; /* Username. */
char ut_host[UT_HOSTSIZE]
diff --git a/sysdeps/gnu/bits/utmpx.h b/sysdeps/gnu/bits/utmpx.h
index 472a7d5..2beadbf 100644
--- a/sysdeps/gnu/bits/utmpx.h
+++ b/sysdeps/gnu/bits/utmpx.h
@@ -56,10 +56,14 @@ struct utmpx
{
short int ut_type; /* Type of login. */
__pid_t ut_pid; /* Process ID of login process. */
- char ut_line[__UT_LINESIZE]; /* Devicename. */
- char ut_id[4]; /* Inittab ID. */
- char ut_user[__UT_NAMESIZE]; /* Username. */
- char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */
+ char ut_line[__UT_LINESIZE]
+ __attribute_nonstring__; /* Devicename. */
+ char ut_id[4]
+ __attribute_nonstring__; /* Inittab ID. */
+ char ut_user[__UT_NAMESIZE]
+ __attribute_nonstring__; /* Username. */
+ char ut_host[__UT_HOSTSIZE]
+ __attribute_nonstring__; /* Hostname for remote login. */
struct __exit_status ut_exit; /* Exit status of a process marked
as DEAD_PROCESS. */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmp.h b/sysdeps/unix/sysv/linux/s390/bits/utmp.h
index 862115c..0569c3b 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/utmp.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/utmp.h
@@ -61,7 +61,8 @@ struct utmp
pid_t ut_pid; /* Process ID of login process. */
char ut_line[UT_LINESIZE]
__attribute_nonstring__; /* Devicename. */
- char ut_id[4]; /* Inittab ID. */
+ char ut_id[4]
+ __attribute_nonstring__; /* Inittab ID. */
char ut_user[UT_NAMESIZE]
__attribute_nonstring__; /* Username. */
char ut_host[UT_HOSTSIZE]
diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
index ea3e860..737d9dc 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
@@ -56,10 +56,14 @@ struct utmpx
{
short int ut_type; /* Type of login. */
__pid_t ut_pid; /* Process ID of login process. */
- char ut_line[__UT_LINESIZE]; /* Devicename. */
- char ut_id[4]; /* Inittab ID. */
- char ut_user[__UT_NAMESIZE]; /* Username. */
- char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */
+ char ut_line[__UT_LINESIZE]
+ __attribute_nonstring__; /* Devicename. */
+ char ut_id[4]
+ __attribute_nonstring__; /* Inittab ID. */
+ char ut_user[__UT_NAMESIZE]
+ __attribute_nonstring__; /* Username. */
+ char ut_host[__UT_HOSTSIZE]
+ __attribute_nonstring__; /* Hostname for remote login. */
struct __exit_status ut_exit; /* Exit status of a process marked
as DEAD_PROCESS. */