Re: [PATCH v4 1/3] audit: replace magic audit syscall class numbers with macros
On Wed, May 19, 2021 at 4:01 PM Richard Guy Briggs wrote: > > Replace audit syscall class magic numbers with macros. > > This required putting the macros into new header file > include/linux/auditsc_classmacros.h since the syscall macros were > included for both 64 bit and 32 bit in any compat code, causing > redefinition warnings. > > Signed-off-by: Richard Guy Briggs > Link: > https://lore.kernel.org/r/2300b1083a32aade7ae7efb95826e8f3f260b1df.1621363275.git@redhat.com > --- > MAINTAINERS | 1 + > arch/alpha/kernel/audit.c | 8 > arch/ia64/kernel/audit.c| 8 > arch/parisc/kernel/audit.c | 8 > arch/parisc/kernel/compat_audit.c | 9 + > arch/powerpc/kernel/audit.c | 10 +- > arch/powerpc/kernel/compat_audit.c | 11 ++- > arch/s390/kernel/audit.c| 10 +- > arch/s390/kernel/compat_audit.c | 11 ++- > arch/sparc/kernel/audit.c | 10 +- > arch/sparc/kernel/compat_audit.c| 11 ++- > arch/x86/ia32/audit.c | 11 ++- > arch/x86/kernel/audit_64.c | 8 > include/linux/audit.h | 1 + > include/linux/auditsc_classmacros.h | 23 +++ > kernel/auditsc.c| 12 ++-- > lib/audit.c | 10 +- > lib/compat_audit.c | 11 ++- > 18 files changed, 102 insertions(+), 71 deletions(-) > create mode 100644 include/linux/auditsc_classmacros.h ... > diff --git a/include/linux/auditsc_classmacros.h > b/include/linux/auditsc_classmacros.h > new file mode 100644 > index ..18757d270961 > --- /dev/null > +++ b/include/linux/auditsc_classmacros.h > @@ -0,0 +1,23 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later */ > +/* auditsc_classmacros.h -- Auditing support syscall macros > + * > + * Copyright 2021 Red Hat Inc., Durham, North Carolina. > + * All Rights Reserved. > + * > + * Author: Richard Guy Briggs > + */ > +#ifndef _LINUX_AUDITSCM_H_ > +#define _LINUX_AUDITSCM_H_ > + > +enum auditsc_class_t { > + AUDITSC_NATIVE = 0, > + AUDITSC_COMPAT, > + AUDITSC_OPEN, > + AUDITSC_OPENAT, > + AUDITSC_SOCKETCALL, > + AUDITSC_EXECVE, > + > + AUDITSC_NVALS /* count */ > +}; > + > +#endif My apologies Richard, for some reason I had it in my mind that this series was waiting on you to answer a question and/or respin; however, now that I'm clearing my patch queues looking for any stragglers I see that isn't the case. Looking over the patchset I think it looks okay to me, my only concern is that "auditsc_classmacros.h" is an awfully specific header file name and could prove to be annoying if we want to add to it in the future. What do you think about something like "audit_arch.h" instead? If that change is okay with you I can go ahead and do the rename while I'm merging the patches, I'll consider it penance for letting this patchset sit for so long :/ -- paul moore www.paul-moore.com
Re: [PATCH v4 1/3] audit: replace magic audit syscall class numbers with macros
On Wed, May 19, 2021 at 04:00:20PM -0400, Richard Guy Briggs wrote: > Replace audit syscall class magic numbers with macros. > > This required putting the macros into new header file > include/linux/auditsc_classmacros.h since the syscall macros were > included for both 64 bit and 32 bit in any compat code, causing > redefinition warnings. > > Signed-off-by: Richard Guy Briggs > Link: > https://lore.kernel.org/r/2300b1083a32aade7ae7efb95826e8f3f260b1df.1621363275.git@redhat.com Looks good. Acked-by: Christian Brauner Fwiw, I would explicitly number all enum values in auditsc_class_t not just the first one. > --- > MAINTAINERS | 1 + > arch/alpha/kernel/audit.c | 8 > arch/ia64/kernel/audit.c| 8 > arch/parisc/kernel/audit.c | 8 > arch/parisc/kernel/compat_audit.c | 9 + > arch/powerpc/kernel/audit.c | 10 +- > arch/powerpc/kernel/compat_audit.c | 11 ++- > arch/s390/kernel/audit.c| 10 +- > arch/s390/kernel/compat_audit.c | 11 ++- > arch/sparc/kernel/audit.c | 10 +- > arch/sparc/kernel/compat_audit.c| 11 ++- > arch/x86/ia32/audit.c | 11 ++- > arch/x86/kernel/audit_64.c | 8 > include/linux/audit.h | 1 + > include/linux/auditsc_classmacros.h | 23 +++ > kernel/auditsc.c| 12 ++-- > lib/audit.c | 10 +- > lib/compat_audit.c | 11 ++- > 18 files changed, 102 insertions(+), 71 deletions(-) > create mode 100644 include/linux/auditsc_classmacros.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index bd7aff0c120f..3348d12019f9 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -3036,6 +3036,7 @@ W: https://github.com/linux-audit > T: git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git > F: include/asm-generic/audit_*.h > F: include/linux/audit.h > +F: include/linux/auditsc_classmacros.h > F: include/uapi/linux/audit.h > F: kernel/audit* > F: lib/*audit.c > diff --git a/arch/alpha/kernel/audit.c b/arch/alpha/kernel/audit.c > index 96a9d18ff4c4..81cbd804e375 100644 > --- a/arch/alpha/kernel/audit.c > +++ b/arch/alpha/kernel/audit.c > @@ -37,13 +37,13 @@ int audit_classify_syscall(int abi, unsigned syscall) > { > switch(syscall) { > case __NR_open: > - return 2; > + return AUDITSC_OPEN; > case __NR_openat: > - return 3; > + return AUDITSC_OPENAT; > case __NR_execve: > - return 5; > + return AUDITSC_EXECVE; > default: > - return 0; > + return AUDITSC_NATIVE; > } > } > > diff --git a/arch/ia64/kernel/audit.c b/arch/ia64/kernel/audit.c > index 5192ca899fe6..dba6a74c9ab3 100644 > --- a/arch/ia64/kernel/audit.c > +++ b/arch/ia64/kernel/audit.c > @@ -38,13 +38,13 @@ int audit_classify_syscall(int abi, unsigned syscall) > { > switch(syscall) { > case __NR_open: > - return 2; > + return AUDITSC_OPEN; > case __NR_openat: > - return 3; > + return AUDITSC_OPENAT; > case __NR_execve: > - return 5; > + return AUDITSC_EXECVE; > default: > - return 0; > + return AUDITSC_NATIVE; > } > } > > diff --git a/arch/parisc/kernel/audit.c b/arch/parisc/kernel/audit.c > index 9eb47b2225d2..14244e83db75 100644 > --- a/arch/parisc/kernel/audit.c > +++ b/arch/parisc/kernel/audit.c > @@ -47,13 +47,13 @@ int audit_classify_syscall(int abi, unsigned syscall) > #endif > switch (syscall) { > case __NR_open: > - return 2; > + return AUDITSC_OPEN; > case __NR_openat: > - return 3; > + return AUDITSC_OPENAT; > case __NR_execve: > - return 5; > + return AUDITSC_EXECVE; > default: > - return 0; > + return AUDITSC_NATIVE; > } > } > > diff --git a/arch/parisc/kernel/compat_audit.c > b/arch/parisc/kernel/compat_audit.c > index 20c39c9d86a9..1d6347d37d92 100644 > --- a/arch/parisc/kernel/compat_audit.c > +++ b/arch/parisc/kernel/compat_audit.c > @@ -1,4 +1,5 @@ > // SPDX-License-Identifier: GPL-2.0 > +#include > #include > > unsigned int parisc32_dir_class[] = { > @@ -30,12 +31,12 @@ int parisc32_classify_syscall(unsigned syscall) > { > switch (syscall) { > case __NR_open: > - return 2; > + return AUDITSC_OPEN; > case __NR_openat: > - return 3; > + return AUDITSC_OPENAT; > case __NR_execve: > - return 5; > + return AUDITSC_EXECVE; > default: > - return 1; > + return AUDITSC_COMPAT; > } > } > diff --git a/arch/powerpc/ker
[PATCH v4 1/3] audit: replace magic audit syscall class numbers with macros
Replace audit syscall class magic numbers with macros. This required putting the macros into new header file include/linux/auditsc_classmacros.h since the syscall macros were included for both 64 bit and 32 bit in any compat code, causing redefinition warnings. Signed-off-by: Richard Guy Briggs Link: https://lore.kernel.org/r/2300b1083a32aade7ae7efb95826e8f3f260b1df.1621363275.git@redhat.com --- MAINTAINERS | 1 + arch/alpha/kernel/audit.c | 8 arch/ia64/kernel/audit.c| 8 arch/parisc/kernel/audit.c | 8 arch/parisc/kernel/compat_audit.c | 9 + arch/powerpc/kernel/audit.c | 10 +- arch/powerpc/kernel/compat_audit.c | 11 ++- arch/s390/kernel/audit.c| 10 +- arch/s390/kernel/compat_audit.c | 11 ++- arch/sparc/kernel/audit.c | 10 +- arch/sparc/kernel/compat_audit.c| 11 ++- arch/x86/ia32/audit.c | 11 ++- arch/x86/kernel/audit_64.c | 8 include/linux/audit.h | 1 + include/linux/auditsc_classmacros.h | 23 +++ kernel/auditsc.c| 12 ++-- lib/audit.c | 10 +- lib/compat_audit.c | 11 ++- 18 files changed, 102 insertions(+), 71 deletions(-) create mode 100644 include/linux/auditsc_classmacros.h diff --git a/MAINTAINERS b/MAINTAINERS index bd7aff0c120f..3348d12019f9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3036,6 +3036,7 @@ W:https://github.com/linux-audit T: git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git F: include/asm-generic/audit_*.h F: include/linux/audit.h +F: include/linux/auditsc_classmacros.h F: include/uapi/linux/audit.h F: kernel/audit* F: lib/*audit.c diff --git a/arch/alpha/kernel/audit.c b/arch/alpha/kernel/audit.c index 96a9d18ff4c4..81cbd804e375 100644 --- a/arch/alpha/kernel/audit.c +++ b/arch/alpha/kernel/audit.c @@ -37,13 +37,13 @@ int audit_classify_syscall(int abi, unsigned syscall) { switch(syscall) { case __NR_open: - return 2; + return AUDITSC_OPEN; case __NR_openat: - return 3; + return AUDITSC_OPENAT; case __NR_execve: - return 5; + return AUDITSC_EXECVE; default: - return 0; + return AUDITSC_NATIVE; } } diff --git a/arch/ia64/kernel/audit.c b/arch/ia64/kernel/audit.c index 5192ca899fe6..dba6a74c9ab3 100644 --- a/arch/ia64/kernel/audit.c +++ b/arch/ia64/kernel/audit.c @@ -38,13 +38,13 @@ int audit_classify_syscall(int abi, unsigned syscall) { switch(syscall) { case __NR_open: - return 2; + return AUDITSC_OPEN; case __NR_openat: - return 3; + return AUDITSC_OPENAT; case __NR_execve: - return 5; + return AUDITSC_EXECVE; default: - return 0; + return AUDITSC_NATIVE; } } diff --git a/arch/parisc/kernel/audit.c b/arch/parisc/kernel/audit.c index 9eb47b2225d2..14244e83db75 100644 --- a/arch/parisc/kernel/audit.c +++ b/arch/parisc/kernel/audit.c @@ -47,13 +47,13 @@ int audit_classify_syscall(int abi, unsigned syscall) #endif switch (syscall) { case __NR_open: - return 2; + return AUDITSC_OPEN; case __NR_openat: - return 3; + return AUDITSC_OPENAT; case __NR_execve: - return 5; + return AUDITSC_EXECVE; default: - return 0; + return AUDITSC_NATIVE; } } diff --git a/arch/parisc/kernel/compat_audit.c b/arch/parisc/kernel/compat_audit.c index 20c39c9d86a9..1d6347d37d92 100644 --- a/arch/parisc/kernel/compat_audit.c +++ b/arch/parisc/kernel/compat_audit.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include unsigned int parisc32_dir_class[] = { @@ -30,12 +31,12 @@ int parisc32_classify_syscall(unsigned syscall) { switch (syscall) { case __NR_open: - return 2; + return AUDITSC_OPEN; case __NR_openat: - return 3; + return AUDITSC_OPENAT; case __NR_execve: - return 5; + return AUDITSC_EXECVE; default: - return 1; + return AUDITSC_COMPAT; } } diff --git a/arch/powerpc/kernel/audit.c b/arch/powerpc/kernel/audit.c index a27f3d09..6eb18ef77dff 100644 --- a/arch/powerpc/kernel/audit.c +++ b/arch/powerpc/kernel/audit.c @@ -47,15 +47,15 @@ int audit_classify_syscall(int abi, unsigned syscall) #endif switch(syscall) { case __NR_open: - return 2; + return AUDITSC_OPEN;