Re: [PATCH] auditsc: Implement a workaround for a GCC bug triggered by task comm changes

From: Paul Moore
Date: Tue Dec 03 2024 - 22:43:13 EST


On Tue, Dec 3, 2024 at 10:00 PM Yafang Shao <laoar.shao@xxxxxxxxx> wrote:
> On Wed, Dec 4, 2024 at 6:06 AM Paul Moore <paul@xxxxxxxxxxxxxx> wrote:
> > On Tue, Dec 3, 2024 at 1:04 AM Yafang Shao <laoar.shao@xxxxxxxxx> wrote:
> > >
> > > From: Yafang shao <laoar.shao@xxxxxxxxx>
> > >
> > > A build failure has been reported with the following details:
> > >
> > > In file included from include/linux/string.h:390,
> > > from include/linux/bitmap.h:13,
> > > from include/linux/cpumask.h:12,
> > > from include/linux/smp.h:13,
> > > from include/linux/lockdep.h:14,
> > > from include/linux/spinlock.h:63,
> > > from include/linux/wait.h:9,
> > > from include/linux/wait_bit.h:8,
> > > from include/linux/fs.h:6,
> > > from kernel/auditsc.c:37:
> > > In function 'sized_strscpy',
> > > inlined from '__audit_ptrace' at kernel/auditsc.c:2732:2:
> > > >> include/linux/fortify-string.h:293:17: error: call to '__write_overflow' declared with attribute error: detected write beyond size of object (1st parameter)
> > > 293 | __write_overflow();
> > > | ^~~~~~~~~~~~~~~~~~
> > > In function 'sized_strscpy',
> > > inlined from 'audit_signal_info_syscall' at kernel/auditsc.c:2759:3:
> > > >> include/linux/fortify-string.h:293:17: error: call to '__write_overflow' declared with attribute error: detected write beyond size of object (1st parameter)
> > > 293 | __write_overflow();
> > > | ^~~~~~~~~~~~~~~~~~
> > >
> > > The issue appears to be a GCC bug, though the root cause remains
> > > unclear at this time. For now, let's implement a workaround.
> > >
> > > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > > Closes: https://lore.kernel.org/oe-kbuild-all/202410171420.1V00ICVG-lkp@xxxxxxxxx/
> > > Reported-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx>
> > > Closes: https://lore.kernel.org/all/20241128182435.57a1ea6f@xxxxxxxxxxxxxxxxxx/
> > > Reported-by: "Zhuo, Qiuxu" <qiuxu.zhuo@xxxxxxxxx>
> > > Closes: https://lore.kernel.org/all/CY8PR11MB71348E568DBDA576F17DAFF389362@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
> > > Originally-by: Kees Cook <kees@xxxxxxxxxx>
> > > Link: https://lore.kernel.org/linux-hardening/202410171059.C2C395030@keescook/
> > > Signed-off-by: Yafang shao <laoar.shao@xxxxxxxxx>
> > > Tested-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx>
> > > ---
> > > kernel/auditsc.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > Thanks, does anyone have a link to the GCC bug report? We really
> > should mention that in the commit description and/or metadata.
>
> I came across a GCC bug report [0] while researching online. This
> issue was reportedly fixed in GCC-12.1 [1], yet it seems the same bug
> is still being triggered in GCC-14.2.0[2].
> Should I file a new bug report with GCC to address this?

I was under the impression that this had already been reported, if it
hasn't, then yes, please report the bug to the GCC team so we can get
this fixed. Once you have the bug report, please post it here so it
can be included in the commit.

> [0] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101941
> [1] https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=76fe494230477a69f8fa8c8ca2d493acaf343eb1
> [2] https://lore.kernel.org/all/20241128182435.57a1ea6f@xxxxxxxxxxxxxxxxxx/

--
paul-moore.com