Message ID | 87sgq6o5oq.fsf@oldenburg2.str.redhat.com |
---|---|
State | New |
Headers | show |
Series | login: Add nonstring attributes to struct utmpx [BZ #24899] | expand |
* Florian Weimer: > 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. > > 2019-08-12 Florian Weimer <fweimer@redhat.com> > > [BZ #24899] > * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add > __attribute_nonstring__ to ut_line, ut_user, ut_host. I forgot to update the s390 header. The patch below fixes this. Thanks, Florian login: Add nonstring attributes to 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. 2019-08-13 Florian Weimer <fweimer@redhat.com> [BZ #24899] * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add __attribute_nonstring__ to ut_line, ut_user, ut_host. * sysdeps/unix/sysv/linux/s390/bits/utmpx.h (struct utmpx): Likewise. diff --git a/sysdeps/gnu/bits/utmpx.h b/sysdeps/gnu/bits/utmpx.h index 472a7d57d3..36259dbae1 100644 --- a/sysdeps/gnu/bits/utmpx.h +++ b/sysdeps/gnu/bits/utmpx.h @@ -56,10 +56,13 @@ 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_line[__UT_LINESIZE] + __attribute_nonstring__; /* Devicename. */ char ut_id[4]; /* Inittab ID. */ - char ut_user[__UT_NAMESIZE]; /* Username. */ - char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ + 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/utmpx.h b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h index ea3e860a2d..dab099994a 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h +++ b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h @@ -56,10 +56,13 @@ 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_line[__UT_LINESIZE] + __attribute_nonstring__; /* Devicename. */ char ut_id[4]; /* Inittab ID. */ - char ut_user[__UT_NAMESIZE]; /* Username. */ - char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ + 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. */
On 13/08/2019 08:16, Florian Weimer wrote: > * Florian Weimer: > >> 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. >> >> 2019-08-12 Florian Weimer <fweimer@redhat.com> >> >> [BZ #24899] >> * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add >> __attribute_nonstring__ to ut_line, ut_user, ut_host. > > I forgot to update the s390 header. The patch below fixes this. > > Thanks, > Florian > > login: Add nonstring attributes to 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. > > 2019-08-13 Florian Weimer <fweimer@redhat.com> > > [BZ #24899] > * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add > __attribute_nonstring__ to ut_line, ut_user, ut_host. > * sysdeps/unix/sysv/linux/s390/bits/utmpx.h (struct utmpx): > Likewise. LGTM, thanks. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> > > diff --git a/sysdeps/gnu/bits/utmpx.h b/sysdeps/gnu/bits/utmpx.h > index 472a7d57d3..36259dbae1 100644 > --- a/sysdeps/gnu/bits/utmpx.h > +++ b/sysdeps/gnu/bits/utmpx.h > @@ -56,10 +56,13 @@ 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_line[__UT_LINESIZE] > + __attribute_nonstring__; /* Devicename. */ > char ut_id[4]; /* Inittab ID. */ > - char ut_user[__UT_NAMESIZE]; /* Username. */ > - char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ > + 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/utmpx.h b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h > index ea3e860a2d..dab099994a 100644 > --- a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h > +++ b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h > @@ -56,10 +56,13 @@ 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_line[__UT_LINESIZE] > + __attribute_nonstring__; /* Devicename. */ > char ut_id[4]; /* Inittab ID. */ > - char ut_user[__UT_NAMESIZE]; /* Username. */ > - char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ > + 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. */ > >
* Adhemerval Zanella: > On 13/08/2019 08:16, Florian Weimer wrote: >> * Florian Weimer: >> >>> 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. >>> >>> 2019-08-12 Florian Weimer <fweimer@redhat.com> >>> >>> [BZ #24899] >>> * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add >>> __attribute_nonstring__ to ut_line, ut_user, ut_host. >> >> I forgot to update the s390 header. The patch below fixes this. >> >> Thanks, >> Florian >> >> login: Add nonstring attributes to 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. >> >> 2019-08-13 Florian Weimer <fweimer@redhat.com> >> >> [BZ #24899] >> * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add >> __attribute_nonstring__ to ut_line, ut_user, ut_host. >> * sysdeps/unix/sysv/linux/s390/bits/utmpx.h (struct utmpx): >> Likewise. > > LGTM, thanks. > > Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> Sorry, I noticed late that the ut_id nonstring attribute was missing as well (see __utmp_equal). Thanks, Florian 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. 2019-08-13 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. 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. */
On 15/08/2019 10:49, Florian Weimer wrote: > * Adhemerval Zanella: > >> On 13/08/2019 08:16, Florian Weimer wrote: >>> * Florian Weimer: >>> >>>> 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. >>>> >>>> 2019-08-12 Florian Weimer <fweimer@redhat.com> >>>> >>>> [BZ #24899] >>>> * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add >>>> __attribute_nonstring__ to ut_line, ut_user, ut_host. >>> >>> I forgot to update the s390 header. The patch below fixes this. >>> >>> Thanks, >>> Florian >>> >>> login: Add nonstring attributes to 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. >>> >>> 2019-08-13 Florian Weimer <fweimer@redhat.com> >>> >>> [BZ #24899] >>> * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add >>> __attribute_nonstring__ to ut_line, ut_user, ut_host. >>> * sysdeps/unix/sysv/linux/s390/bits/utmpx.h (struct utmpx): >>> Likewise. >> >> LGTM, thanks. >> >> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> > > Sorry, I noticed late that the ut_id nonstring attribute was missing as > well (see __utmp_equal). > > Thanks, > Florian > > 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. > > 2019-08-13 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. Still LTGM. And we really need to consolidate the utmpx.h header. > > 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. */ > >
diff --git a/sysdeps/gnu/bits/utmpx.h b/sysdeps/gnu/bits/utmpx.h index 472a7d57d3..36259dbae1 100644 --- a/sysdeps/gnu/bits/utmpx.h +++ b/sysdeps/gnu/bits/utmpx.h @@ -56,10 +56,13 @@ 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_line[__UT_LINESIZE] + __attribute_nonstring__; /* Devicename. */ char ut_id[4]; /* Inittab ID. */ - char ut_user[__UT_NAMESIZE]; /* Username. */ - char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ + 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. */