All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 8419/8766] kernel/auditfilter.c:592:60: error: too many arguments provided to function-like macro invocation
@ 2026-05-27 20:26 kernel test robot
  2026-05-28 15:13 ` Paul Moore
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2026-05-27 20:26 UTC (permalink / raw)
  To: Ricardo Robaina; +Cc: llvm, oe-kbuild-all, Paul Moore

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   e7d700e14934e68f86338c5610cf2ae76798b663
commit: 84470b80b7b0ded9a6b071a211a028fe5fec7e44 [8419/8766] audit: fix recursive locking deadlock in audit_dupe_exe()
config: arm-randconfig-003-20260528 (https://download.01.org/0day-ci/archive/20260528/202605280441.YSawqHBc-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 853d532794be83adc97d51c9ff8c9095ce32631b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260528/202605280441.YSawqHBc-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605280441.YSawqHBc-lkp@intel.com/

All errors (new ones prefixed by >>):

>> kernel/auditfilter.c:592:60: error: too many arguments provided to function-like macro invocation
     592 |                         audit_mark = audit_alloc_mark(&entry->rule, str, f_val, NULL);
         |                                                                                 ^
   kernel/audit.h:327:9: note: macro 'audit_alloc_mark' defined here
     327 | #define audit_alloc_mark(k, p, l) (ERR_PTR(-EINVAL))
         |         ^
>> kernel/auditfilter.c:592:17: error: use of undeclared identifier 'audit_alloc_mark'; did you mean 'audit_alloc'?
     592 |                         audit_mark = audit_alloc_mark(&entry->rule, str, f_val, NULL);
         |                                      ^~~~~~~~~~~~~~~~
         |                                      audit_alloc
   include/linux/audit.h:604:19: note: 'audit_alloc' declared here
     604 | static inline int audit_alloc(struct task_struct *task)
         |                   ^
>> kernel/auditfilter.c:592:15: error: incompatible pointer types assigning to 'struct audit_fsnotify_mark *' from 'int (struct task_struct *)' [-Wincompatible-pointer-types]
     592 |                         audit_mark = audit_alloc_mark(&entry->rule, str, f_val, NULL);
         |                                    ^ ~~~~~~~~~~~~~~~~
   kernel/auditfilter.c:879:35: error: too many arguments provided to function-like macro invocation
     879 |                         err = audit_dupe_exe(new, old, ctx);
         |                                                        ^
   kernel/audit.h:333:9: note: macro 'audit_dupe_exe' defined here
     333 | #define audit_dupe_exe(n, o) (-EINVAL)
         |         ^
>> kernel/auditfilter.c:879:10: error: use of undeclared identifier 'audit_dupe_exe'; did you mean 'audit_dupe_rule'?
     879 |                         err = audit_dupe_exe(new, old, ctx);
         |                               ^~~~~~~~~~~~~~
         |                               audit_dupe_rule
   kernel/auditfilter.c:819:21: note: 'audit_dupe_rule' declared here
     819 | struct audit_entry *audit_dupe_rule(struct audit_krule *old,
         |                     ^
>> kernel/auditfilter.c:879:8: error: incompatible pointer to integer conversion assigning to 'int' from 'struct audit_entry *(struct audit_krule *, struct audit_watch_ctx *)' [-Wint-conversion]
     879 |                         err = audit_dupe_exe(new, old, ctx);
         |                             ^ ~~~~~~~~~~~~~~
   6 errors generated.


vim +592 kernel/auditfilter.c

   446	
   447	/* Translate struct audit_rule_data to kernel's rule representation. */
   448	static struct audit_entry *audit_data_to_entry(struct audit_rule_data *data,
   449						       size_t datasz)
   450	{
   451		int err = 0;
   452		struct audit_entry *entry;
   453		void *bufp;
   454		size_t remain = datasz - sizeof(struct audit_rule_data);
   455		int i;
   456		char *str;
   457		struct audit_fsnotify_mark *audit_mark;
   458	
   459		entry = audit_to_entry_common(data);
   460		if (IS_ERR(entry))
   461			goto exit_nofree;
   462	
   463		bufp = data->buf;
   464		for (i = 0; i < data->field_count; i++) {
   465			struct audit_field *f = &entry->rule.fields[i];
   466			u32 f_val;
   467	
   468			err = -EINVAL;
   469	
   470			f->op = audit_to_op(data->fieldflags[i]);
   471			if (f->op == Audit_bad)
   472				goto exit_free;
   473	
   474			f->type = data->fields[i];
   475			f_val = data->values[i];
   476	
   477			/* Support legacy tests for a valid loginuid */
   478			if ((f->type == AUDIT_LOGINUID) && (f_val == AUDIT_UID_UNSET)) {
   479				f->type = AUDIT_LOGINUID_SET;
   480				f_val = 0;
   481				entry->rule.pflags |= AUDIT_LOGINUID_LEGACY;
   482			}
   483	
   484			err = audit_field_valid(entry, f);
   485			if (err)
   486				goto exit_free;
   487	
   488			err = -EINVAL;
   489			switch (f->type) {
   490			case AUDIT_LOGINUID:
   491			case AUDIT_UID:
   492			case AUDIT_EUID:
   493			case AUDIT_SUID:
   494			case AUDIT_FSUID:
   495			case AUDIT_OBJ_UID:
   496				f->uid = make_kuid(current_user_ns(), f_val);
   497				if (!uid_valid(f->uid))
   498					goto exit_free;
   499				break;
   500			case AUDIT_GID:
   501			case AUDIT_EGID:
   502			case AUDIT_SGID:
   503			case AUDIT_FSGID:
   504			case AUDIT_OBJ_GID:
   505				f->gid = make_kgid(current_user_ns(), f_val);
   506				if (!gid_valid(f->gid))
   507					goto exit_free;
   508				break;
   509			case AUDIT_ARCH:
   510				f->val = f_val;
   511				entry->rule.arch_f = f;
   512				break;
   513			case AUDIT_SUBJ_USER:
   514			case AUDIT_SUBJ_ROLE:
   515			case AUDIT_SUBJ_TYPE:
   516			case AUDIT_SUBJ_SEN:
   517			case AUDIT_SUBJ_CLR:
   518			case AUDIT_OBJ_USER:
   519			case AUDIT_OBJ_ROLE:
   520			case AUDIT_OBJ_TYPE:
   521			case AUDIT_OBJ_LEV_LOW:
   522			case AUDIT_OBJ_LEV_HIGH:
   523				str = audit_unpack_string(&bufp, &remain, f_val);
   524				if (IS_ERR(str)) {
   525					err = PTR_ERR(str);
   526					goto exit_free;
   527				}
   528				entry->rule.buflen += f_val;
   529				f->lsm_str = str;
   530				err = security_audit_rule_init(f->type, f->op, str,
   531							       (void **)&f->lsm_rule,
   532							       GFP_KERNEL);
   533				/* Keep currently invalid fields around in case they
   534				 * become valid after a policy reload. */
   535				if (err == -EINVAL) {
   536					pr_warn("audit rule for LSM \'%s\' is invalid\n",
   537						str);
   538					err = 0;
   539				} else if (err)
   540					goto exit_free;
   541				break;
   542			case AUDIT_WATCH:
   543				str = audit_unpack_string(&bufp, &remain, f_val);
   544				if (IS_ERR(str)) {
   545					err = PTR_ERR(str);
   546					goto exit_free;
   547				}
   548				err = audit_to_watch(&entry->rule, str, f_val, f->op);
   549				if (err) {
   550					kfree(str);
   551					goto exit_free;
   552				}
   553				entry->rule.buflen += f_val;
   554				break;
   555			case AUDIT_DIR:
   556				str = audit_unpack_string(&bufp, &remain, f_val);
   557				if (IS_ERR(str)) {
   558					err = PTR_ERR(str);
   559					goto exit_free;
   560				}
   561				err = audit_make_tree(&entry->rule, str, f->op);
   562				kfree(str);
   563				if (err)
   564					goto exit_free;
   565				entry->rule.buflen += f_val;
   566				break;
   567			case AUDIT_INODE:
   568				f->val = f_val;
   569				err = audit_to_inode(&entry->rule, f);
   570				if (err)
   571					goto exit_free;
   572				break;
   573			case AUDIT_FILTERKEY:
   574				if (entry->rule.filterkey || f_val > AUDIT_MAX_KEY_LEN)
   575					goto exit_free;
   576				str = audit_unpack_string(&bufp, &remain, f_val);
   577				if (IS_ERR(str)) {
   578					err = PTR_ERR(str);
   579					goto exit_free;
   580				}
   581				entry->rule.buflen += f_val;
   582				entry->rule.filterkey = str;
   583				break;
   584			case AUDIT_EXE:
   585				if (entry->rule.exe || f_val > PATH_MAX)
   586					goto exit_free;
   587				str = audit_unpack_string(&bufp, &remain, f_val);
   588				if (IS_ERR(str)) {
   589					err = PTR_ERR(str);
   590					goto exit_free;
   591				}
 > 592				audit_mark = audit_alloc_mark(&entry->rule, str, f_val, NULL);
   593				if (IS_ERR(audit_mark)) {
   594					kfree(str);
   595					err = PTR_ERR(audit_mark);
   596					goto exit_free;
   597				}
   598				entry->rule.buflen += f_val;
   599				entry->rule.exe = audit_mark;
   600				break;
   601			default:
   602				f->val = f_val;
   603				break;
   604			}
   605		}
   606	
   607		if (entry->rule.inode_f && entry->rule.inode_f->op == Audit_not_equal)
   608			entry->rule.inode_f = NULL;
   609	
   610	exit_nofree:
   611		return entry;
   612	
   613	exit_free:
   614		if (entry->rule.tree)
   615			audit_put_tree(entry->rule.tree); /* that's the temporary one */
   616		if (entry->rule.exe)
   617			audit_remove_mark(entry->rule.exe); /* that's the template one */
   618		audit_free_rule(entry);
   619		return ERR_PTR(err);
   620	}
   621	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [linux-next:master 8419/8766] kernel/auditfilter.c:592:60: error: too many arguments provided to function-like macro invocation
  2026-05-27 20:26 [linux-next:master 8419/8766] kernel/auditfilter.c:592:60: error: too many arguments provided to function-like macro invocation kernel test robot
@ 2026-05-28 15:13 ` Paul Moore
  0 siblings, 0 replies; 2+ messages in thread
From: Paul Moore @ 2026-05-28 15:13 UTC (permalink / raw)
  To: kernel test robot; +Cc: Ricardo Robaina, llvm, oe-kbuild-all

On Wed, May 27, 2026 at 4:27 PM kernel test robot <lkp@intel.com> wrote:
>
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   e7d700e14934e68f86338c5610cf2ae76798b663
> commit: 84470b80b7b0ded9a6b071a211a028fe5fec7e44 [8419/8766] audit: fix recursive locking deadlock in audit_dupe_exe()
> config: arm-randconfig-003-20260528 (https://download.01.org/0day-ci/archive/20260528/202605280441.YSawqHBc-lkp@intel.com/config)
> compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 853d532794be83adc97d51c9ff8c9095ce32631b)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260528/202605280441.YSawqHBc-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202605280441.YSawqHBc-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> >> kernel/auditfilter.c:592:60: error: too many arguments provided to function-like macro invocation
>      592 |                         audit_mark = audit_alloc_mark(&entry->rule, str, f_val, NULL);
>          |                                                                                 ^
>    kernel/audit.h:327:9: note: macro 'audit_alloc_mark' defined here
>      327 | #define audit_alloc_mark(k, p, l) (ERR_PTR(-EINVAL))
>          |         ^
> >> kernel/auditfilter.c:592:17: error: use of undeclared identifier 'audit_alloc_mark'; did you mean 'audit_alloc'?
>      592 |                         audit_mark = audit_alloc_mark(&entry->rule, str, f_val, NULL);
>          |                                      ^~~~~~~~~~~~~~~~
>          |                                      audit_alloc
>    include/linux/audit.h:604:19: note: 'audit_alloc' declared here
>      604 | static inline int audit_alloc(struct task_struct *task)
>          |                   ^
> >> kernel/auditfilter.c:592:15: error: incompatible pointer types assigning to 'struct audit_fsnotify_mark *' from 'int (struct task_struct *)' [-Wincompatible-pointer-types]
>      592 |                         audit_mark = audit_alloc_mark(&entry->rule, str, f_val, NULL);
>          |                                    ^ ~~~~~~~~~~~~~~~~
>    kernel/auditfilter.c:879:35: error: too many arguments provided to function-like macro invocation
>      879 |                         err = audit_dupe_exe(new, old, ctx);
>          |                                                        ^
>    kernel/audit.h:333:9: note: macro 'audit_dupe_exe' defined here
>      333 | #define audit_dupe_exe(n, o) (-EINVAL)
>          |         ^
> >> kernel/auditfilter.c:879:10: error: use of undeclared identifier 'audit_dupe_exe'; did you mean 'audit_dupe_rule'?
>      879 |                         err = audit_dupe_exe(new, old, ctx);
>          |                               ^~~~~~~~~~~~~~
>          |                               audit_dupe_rule
>    kernel/auditfilter.c:819:21: note: 'audit_dupe_rule' declared here
>      819 | struct audit_entry *audit_dupe_rule(struct audit_krule *old,
>          |                     ^
> >> kernel/auditfilter.c:879:8: error: incompatible pointer to integer conversion assigning to 'int' from 'struct audit_entry *(struct audit_krule *, struct audit_watch_ctx *)' [-Wint-conversion]
>      879 |                         err = audit_dupe_exe(new, old, ctx);
>          |                             ^ ~~~~~~~~~~~~~~
>    6 errors generated.

This should be fixed in the current audit tree.

-- 
paul-moore.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-05-28 15:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-27 20:26 [linux-next:master 8419/8766] kernel/auditfilter.c:592:60: error: too many arguments provided to function-like macro invocation kernel test robot
2026-05-28 15:13 ` Paul Moore

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.