diff options
author | Florian Weimer <fweimer@redhat.com> | 2019-08-15 16:09:43 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2019-08-15 16:09:43 +0200 |
commit | c2adefbafcdd2519ff43eca6891c77cd7b29ab62 (patch) | |
tree | 44ad3044ceb469239af4c1fb1bf3ca0335454f95 | |
parent | 0d5b2917530ccaf8ad312dfbb7bce69d569c23ad (diff) | |
download | glibc-c2adefbafcdd2519ff43eca6891c77cd7b29ab62.tar.gz glibc-c2adefbafcdd2519ff43eca6891c77cd7b29ab62.tar.xz glibc-c2adefbafcdd2519ff43eca6891c77cd7b29ab62.zip |
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-- | ChangeLog | 12 | ||||
-rw-r--r-- | bits/utmp.h | 3 | ||||
-rw-r--r-- | sysdeps/gnu/bits/utmpx.h | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/bits/utmp.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/bits/utmpx.h | 12 |
5 files changed, 32 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog index b13346c952..c49d952a0a 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 3c02dd4f3f..854b342164 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 472a7d57d3..2beadbf587 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 862115c6f8..0569c3b784 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 ea3e860a2d..737d9dca05 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. */ |