audit user space build problems

Steve Grubb sgrubb at redhat.com
Mon Feb 21 21:50:22 UTC 2022


Hello,

Recently, distributions moved to building against gcc-12 for their latest OS 
composes. It's been found in at least 2 distributions that the user space 
package is failing to build. It's natural to think this is related to gcc-12 
since it's the obvious change.

However, the problem is a combination of 2 things:

1) SWIG is making buggy code
2) The kernel changed to using flexible array members

The issue specifically is with struct audit_rules_data. At the bottom, it was 
using buf[0];  But on 5.17, it uses buf[];  It turns out that gcc-12 is just 
a coincidence and anything using gcc-12 also has the newest kernel.

The options are:
1) Report this as a SWIG bug and wait
2) Rewrite the libaudit python bindings to not use SWIG
3) Ask for buf[0]; to be reinstated in the kernel.

Of these, I think option 2 is the only viable long term option. It will take 
some time to write new python bindings that preserve the SWIG api.

A short term fix might be for distros to copy the kernel header into the lib 
directory and patch it to restore buf[0];, then change libaudit.c to include 
"audit.h" instead of <linux/audit.h>. There may be other approaches.

Just wanted to let everyone know that new builds in distributions are running 
into a problem. And a real fix will take a while.

Best,
-Steve





More information about the Linux-audit mailing list