lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <202310190437.paI6LYJF-lkp@intel.com>
Date:   Thu, 19 Oct 2023 04:33:41 +0800
From:   kernel test robot <lkp@...el.com>
To:     Tom Zanussi <zanussi@...nel.org>
Cc:     oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
        "Steven Rostedt (VMware)" <rostedt@...dmis.org>
Subject: kernel/trace/trace_kprobe.c:952: warning: Excess function parameter
 'args' description in '__kprobe_event_gen_cmd_start'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   dd72f9c7e512da377074d47d990564959b772643
commit: 2a588dd1d5d649a183a2ff6fa1b80e870cf821d8 tracing: Add kprobe event command generation functions
date:   3 years, 9 months ago
config: x86_64-randconfig-x012-20230629 (https://download.01.org/0day-ci/archive/20231019/202310190437.paI6LYJF-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231019/202310190437.paI6LYJF-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310190437.paI6LYJF-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> kernel/trace/trace_kprobe.c:952: warning: Excess function parameter 'args' description in '__kprobe_event_gen_cmd_start'
>> kernel/trace/trace_kprobe.c:1017: warning: Excess function parameter 'args' description in '__kprobe_event_add_fields'


vim +952 kernel/trace/trace_kprobe.c

   929	
   930	/**
   931	 * __kprobe_event_gen_cmd_start - Generate a kprobe event command from arg list
   932	 * @cmd: A pointer to the dynevent_cmd struct representing the new event
   933	 * @name: The name of the kprobe event
   934	 * @loc: The location of the kprobe event
   935	 * @kretprobe: Is this a return probe?
   936	 * @args: Variable number of arg (pairs), one pair for each field
   937	 *
   938	 * NOTE: Users normally won't want to call this function directly, but
   939	 * rather use the kprobe_event_gen_cmd_start() wrapper, which automatically
   940	 * adds a NULL to the end of the arg list.  If this function is used
   941	 * directly, make sure the last arg in the variable arg list is NULL.
   942	 *
   943	 * Generate a kprobe event command to be executed by
   944	 * kprobe_event_gen_cmd_end().  This function can be used to generate the
   945	 * complete command or only the first part of it; in the latter case,
   946	 * kprobe_event_add_fields() can be used to add more fields following this.
   947	 *
   948	 * Return: 0 if successful, error otherwise.
   949	 */
   950	int __kprobe_event_gen_cmd_start(struct dynevent_cmd *cmd, bool kretprobe,
   951					 const char *name, const char *loc, ...)
 > 952	{
   953		char buf[MAX_EVENT_NAME_LEN];
   954		struct dynevent_arg arg;
   955		va_list args;
   956		int ret;
   957	
   958		if (cmd->type != DYNEVENT_TYPE_KPROBE)
   959			return -EINVAL;
   960	
   961		if (kretprobe)
   962			snprintf(buf, MAX_EVENT_NAME_LEN, "r:kprobes/%s", name);
   963		else
   964			snprintf(buf, MAX_EVENT_NAME_LEN, "p:kprobes/%s", name);
   965	
   966		ret = dynevent_str_add(cmd, buf);
   967		if (ret)
   968			return ret;
   969	
   970		dynevent_arg_init(&arg, NULL, 0);
   971		arg.str = loc;
   972		ret = dynevent_arg_add(cmd, &arg);
   973		if (ret)
   974			return ret;
   975	
   976		va_start(args, loc);
   977		for (;;) {
   978			const char *field;
   979	
   980			field = va_arg(args, const char *);
   981			if (!field)
   982				break;
   983	
   984			if (++cmd->n_fields > MAX_TRACE_ARGS) {
   985				ret = -EINVAL;
   986				break;
   987			}
   988	
   989			arg.str = field;
   990			ret = dynevent_arg_add(cmd, &arg);
   991			if (ret)
   992				break;
   993		}
   994		va_end(args);
   995	
   996		return ret;
   997	}
   998	EXPORT_SYMBOL_GPL(__kprobe_event_gen_cmd_start);
   999	
  1000	/**
  1001	 * __kprobe_event_add_fields - Add probe fields to a kprobe command from arg list
  1002	 * @cmd: A pointer to the dynevent_cmd struct representing the new event
  1003	 * @args: Variable number of arg (pairs), one pair for each field
  1004	 *
  1005	 * NOTE: Users normally won't want to call this function directly, but
  1006	 * rather use the kprobe_event_add_fields() wrapper, which
  1007	 * automatically adds a NULL to the end of the arg list.  If this
  1008	 * function is used directly, make sure the last arg in the variable
  1009	 * arg list is NULL.
  1010	 *
  1011	 * Add probe fields to an existing kprobe command using a variable
  1012	 * list of args.  Fields are added in the same order they're listed.
  1013	 *
  1014	 * Return: 0 if successful, error otherwise.
  1015	 */
  1016	int __kprobe_event_add_fields(struct dynevent_cmd *cmd, ...)
> 1017	{
  1018		struct dynevent_arg arg;
  1019		va_list args;
  1020		int ret;
  1021	
  1022		if (cmd->type != DYNEVENT_TYPE_KPROBE)
  1023			return -EINVAL;
  1024	
  1025		dynevent_arg_init(&arg, NULL, 0);
  1026	
  1027		va_start(args, cmd);
  1028		for (;;) {
  1029			const char *field;
  1030	
  1031			field = va_arg(args, const char *);
  1032			if (!field)
  1033				break;
  1034	
  1035			if (++cmd->n_fields > MAX_TRACE_ARGS) {
  1036				ret = -EINVAL;
  1037				break;
  1038			}
  1039	
  1040			arg.str = field;
  1041			ret = dynevent_arg_add(cmd, &arg);
  1042			if (ret)
  1043				break;
  1044		}
  1045		va_end(args);
  1046	
  1047		return ret;
  1048	}
  1049	EXPORT_SYMBOL_GPL(__kprobe_event_add_fields);
  1050	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ