Re: [PATCH v30 06/28] LSM: Use lsmblob in security_audit_rule_match

2021-12-05 Thread Paul Moore
On Tue, Nov 23, 2021 at 8:50 PM Casey Schaufler  wrote:
>
> Change the secid parameter of security_audit_rule_match
> to a lsmblob structure pointer. Pass the entry from the
> lsmblob structure for the approprite slot to the LSM hook.
>
> Change the users of security_audit_rule_match to use the
> lsmblob instead of a u32. The scaffolding function lsmblob_init()
> fills the blob with the value of the old secid, ensuring that
> it is available to the appropriate module hook. The sources of
> the secid, security_task_getsecid() and security_inode_getsecid(),
> will be converted to use the blob structure later in the series.
> At the point the use of lsmblob_init() is dropped.
>
> Signed-off-by: Casey Schaufler 
> Cc: linux-audit@redhat.com
> ---
>  include/linux/security.h |  5 +++--
>  kernel/auditfilter.c |  6 --
>  kernel/auditsc.c | 16 +++-
>  security/security.c  |  5 +++--
>  4 files changed, 21 insertions(+), 11 deletions(-)
>
> diff --git a/include/linux/security.h b/include/linux/security.h
> index ddd4cf48413c..d846d90f5624 100644
> --- a/include/linux/security.h
> +++ b/include/linux/security.h
> @@ -1954,7 +1954,7 @@ static inline int security_key_getsecurity(struct key 
> *key, char **_buffer)
>  int security_audit_rule_init(u32 field, u32 op, char *rulestr,
>  struct audit_rules *lsmrules);
>  int security_audit_rule_known(struct audit_krule *krule);
> -int security_audit_rule_match(u32 secid, u32 field, u32 op,
> +int security_audit_rule_match(struct lsmblob *blob, u32 field, u32 op,
>   struct audit_rules *lsmrules);
>  void security_audit_rule_free(struct audit_rules *lsmrules);
>
> @@ -1971,7 +1971,8 @@ static inline int security_audit_rule_known(struct 
> audit_krule *krule)
> return 0;
>  }
>
> -static inline int security_audit_rule_match(u32 secid, u32 field, u32 op,
> +static inline int security_audit_rule_match(struct lsmblob *blob secid,
> +   u32 field, u32 op,
> struct audit_rules *lsmrules)
>  {
> return 0;

Assuming you fixup the typo above that the test robot found it looks
reasonable to me.

Acked-by: Paul Moore 

--
paul moore
www.paul-moore.com

--
Linux-audit mailing list
Linux-audit@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-audit



Re: [PATCH v30 06/28] LSM: Use lsmblob in security_audit_rule_match

2021-11-24 Thread kernel test robot
Hi Casey,

I love your patch! Yet something to improve:

[auto build test ERROR on nf-next/master]
[also build test ERROR on nf/master linus/master v5.16-rc2]
[cannot apply to pcmoore-audit/next jmorris-security/next-testing next-20211124]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:
https://github.com/0day-ci/linux/commits/Casey-Schaufler/integrity-disassociate-ima_filter_rule-from-security_audit_rule/20211124-104307
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
config: riscv-randconfig-r042-20211124 
(https://download.01.org/0day-ci/archive/20211124/202111242150.wktmjdsn-...@intel.com/config)
compiler: riscv32-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# 
https://github.com/0day-ci/linux/commit/4d65fc1987e5710b2911159149f0de12d2202631
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review 
Casey-Schaufler/integrity-disassociate-ima_filter_rule-from-security_audit_rule/20211124-104307
git checkout 4d65fc1987e5710b2911159149f0de12d2202631
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross 
O=build_dir ARCH=riscv SHELL=/bin/bash drivers/android/ kernel/ net/bridge/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All errors (new ones prefixed by >>):

   In file included from kernel/fork.c:50:
>> include/linux/security.h:1974:66: error: expected ';', ',' or ')' before 
>> 'secid'
1974 | static inline int security_audit_rule_match(struct lsmblob *blob 
secid,
 |  
^
   kernel/fork.c:161:13: warning: no previous prototype for 
'arch_release_task_struct' [-Wmissing-prototypes]
 161 | void __weak arch_release_task_struct(struct task_struct *tsk)
 | ^~~~
   kernel/fork.c:763:20: warning: no previous prototype for 
'arch_task_cache_init' [-Wmissing-prototypes]
 763 | void __init __weak arch_task_cache_init(void) { }
 |^~~~
--
   In file included from include/linux/perf_event.h:59,
from include/linux/trace_events.h:10,
from include/trace/syscall.h:7,
from include/linux/syscalls.h:88,
from kernel/exec_domain.c:19:
>> include/linux/security.h:1974:66: error: expected ';', ',' or ')' before 
>> 'secid'
1974 | static inline int security_audit_rule_match(struct lsmblob *blob 
secid,
 |  
^
--
   In file included from include/linux/perf_event.h:59,
from include/linux/trace_events.h:10,
from include/trace/syscall.h:7,
from include/linux/syscalls.h:88,
from kernel/exit.c:42:
>> include/linux/security.h:1974:66: error: expected ';', ',' or ')' before 
>> 'secid'
1974 | static inline int security_audit_rule_match(struct lsmblob *blob 
secid,
 |  
^
   kernel/exit.c:1817:13: warning: no previous prototype for 'abort' 
[-Wmissing-prototypes]
1817 | __weak void abort(void)
 | ^
--
   In file included from include/net/scm.h:8,
from include/linux/netlink.h:9,
from include/uapi/linux/neighbour.h:6,
from include/linux/netdevice.h:45,
from include/linux/if_vlan.h:10,
from include/linux/filter.h:19,
from kernel/kallsyms.c:25:
>> include/linux/security.h:1974:66: error: expected ';', ',' or ')' before 
>> 'secid'
1974 | static inline int security_audit_rule_match(struct lsmblob *blob 
secid,
 |  
^
   kernel/kallsyms.c:586:12: warning: no previous prototype for 
'arch_get_kallsym' [-Wmissing-prototypes]
 586 | int __weak arch_get_kallsym(unsigned int symnum, unsigned long 
*value,
 |^~~~
   kernel/kallsyms.c:874:30: warning: 'kallsyms_proc_ops' defined but not used 
[-Wunused-const-variable=]
 874 | static const struct proc_ops kallsyms_proc_ops = {
 |  ^
--
   In file included from include/linux/perf_event.h:59,
from include/linux/trace_events.h:10,
from include/trace/syscall.h:7,
from include/linux/syscalls.h:88,