From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev, Saeed Mahameed <saeed@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Eric Dumazet <edumazet@google.com>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
netdev@vger.kernel.org, Saeed Mahameed <saeedm@nvidia.com>,
Tariq Toukan <tariqt@nvidia.com>, Gal Pressman <gal@nvidia.com>,
Leon Romanovsky <leonro@nvidia.com>, Jiri Pirko <jiri@nvidia.com>
Subject: Re: [PATCH net-next 12/14] devlink: Throw extack messages on param value validation error
Date: Mon, 3 Mar 2025 10:06:08 +0300 [thread overview]
Message-ID: <838b1bb7-776f-481a-bda0-015368012040@stanley.mountain> (raw)
In-Reply-To: <20250228021227.871993-13-saeed@kernel.org>
Hi Saeed,
kernel test robot noticed the following build warnings:
url: https://github.com/intel-lab-lkp/linux/commits/Saeed-Mahameed/devlink-define-enum-for-attr-types-of-dynamic-attributes/20250228-101818
base: net-next/main
patch link: https://lore.kernel.org/r/20250228021227.871993-13-saeed%40kernel.org
patch subject: [PATCH net-next 12/14] devlink: Throw extack messages on param value validation error
config: sparc-randconfig-r071-20250302 (https://download.01.org/0day-ci/archive/20250302/202503022006.eOu80RMF-lkp@intel.com/config)
compiler: sparc-linux-gcc (GCC) 14.2.0
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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202503022006.eOu80RMF-lkp@intel.com/
smatch warnings:
net/devlink/param.c:498 devlink_param_value_validate() error: we previously assumed 'param_data' could be null (see line 475)
vim +/param_data +498 net/devlink/param.c
ca557d9df319fed Saeed Mahameed 2025-02-27 461 static int
ca557d9df319fed Saeed Mahameed 2025-02-27 462 devlink_param_value_validate(struct genl_info *info,
ca557d9df319fed Saeed Mahameed 2025-02-27 463 enum devlink_param_type type)
ca557d9df319fed Saeed Mahameed 2025-02-27 464 {
ca557d9df319fed Saeed Mahameed 2025-02-27 465 struct netlink_ext_ack *extack = info->extack;
ca557d9df319fed Saeed Mahameed 2025-02-27 466 struct nlattr *param_data;
ca557d9df319fed Saeed Mahameed 2025-02-27 467 int len = 0;
ca557d9df319fed Saeed Mahameed 2025-02-27 468
ca557d9df319fed Saeed Mahameed 2025-02-27 469 if (type != DEVLINK_PARAM_TYPE_BOOL &&
ca557d9df319fed Saeed Mahameed 2025-02-27 470 GENL_REQ_ATTR_CHECK(info, DEVLINK_ATTR_PARAM_VALUE_DATA))
ca557d9df319fed Saeed Mahameed 2025-02-27 471 return -EINVAL;
ca557d9df319fed Saeed Mahameed 2025-02-27 472
ca557d9df319fed Saeed Mahameed 2025-02-27 473 param_data = info->attrs[DEVLINK_ATTR_PARAM_VALUE_DATA];
ca557d9df319fed Saeed Mahameed 2025-02-27 474
ca557d9df319fed Saeed Mahameed 2025-02-27 @475 if (param_data)
This assumes param_data can be NULL
ca557d9df319fed Saeed Mahameed 2025-02-27 476 len = nla_len(param_data);
ca557d9df319fed Saeed Mahameed 2025-02-27 477
ca557d9df319fed Saeed Mahameed 2025-02-27 478 switch (type) {
ca557d9df319fed Saeed Mahameed 2025-02-27 479 case DEVLINK_PARAM_TYPE_U8:
ca557d9df319fed Saeed Mahameed 2025-02-27 480 if (len == sizeof(u8))
ca557d9df319fed Saeed Mahameed 2025-02-27 481 return 0;
ca557d9df319fed Saeed Mahameed 2025-02-27 482 NL_SET_ERR_MSG_FMT_MOD(extack,
ca557d9df319fed Saeed Mahameed 2025-02-27 483 "Expected uint8, got %d bytes", len);
ca557d9df319fed Saeed Mahameed 2025-02-27 484 break;
ca557d9df319fed Saeed Mahameed 2025-02-27 485 case DEVLINK_PARAM_TYPE_U16:
ca557d9df319fed Saeed Mahameed 2025-02-27 486 if (len == sizeof(u16))
ca557d9df319fed Saeed Mahameed 2025-02-27 487 return 0;
ca557d9df319fed Saeed Mahameed 2025-02-27 488 NL_SET_ERR_MSG_FMT_MOD(extack,
ca557d9df319fed Saeed Mahameed 2025-02-27 489 "Expected uint16, got %d bytes", len);
ca557d9df319fed Saeed Mahameed 2025-02-27 490 break;
ca557d9df319fed Saeed Mahameed 2025-02-27 491 case DEVLINK_PARAM_TYPE_U32:
ca557d9df319fed Saeed Mahameed 2025-02-27 492 if (len == sizeof(u32))
ca557d9df319fed Saeed Mahameed 2025-02-27 493 return 0;
ca557d9df319fed Saeed Mahameed 2025-02-27 494 NL_SET_ERR_MSG_FMT_MOD(extack,
ca557d9df319fed Saeed Mahameed 2025-02-27 495 "Expected uint32, got %d bytes", len);
ca557d9df319fed Saeed Mahameed 2025-02-27 496 break;
ca557d9df319fed Saeed Mahameed 2025-02-27 497 case DEVLINK_PARAM_TYPE_STRING:
ca557d9df319fed Saeed Mahameed 2025-02-27 @498 len = strnlen(nla_data(param_data), nla_len(param_data));
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Unchecked dereferences
ca557d9df319fed Saeed Mahameed 2025-02-27 499
ca557d9df319fed Saeed Mahameed 2025-02-27 500 if (len < nla_len(param_data) &&
ca557d9df319fed Saeed Mahameed 2025-02-27 501 len < __DEVLINK_PARAM_MAX_STRING_VALUE)
ca557d9df319fed Saeed Mahameed 2025-02-27 502 return 0;
ca557d9df319fed Saeed Mahameed 2025-02-27 503 NL_SET_ERR_MSG_MOD(extack, "String too long");
ca557d9df319fed Saeed Mahameed 2025-02-27 504 break;
ca557d9df319fed Saeed Mahameed 2025-02-27 505 case DEVLINK_PARAM_TYPE_BOOL:
ca557d9df319fed Saeed Mahameed 2025-02-27 506 if (!len)
ca557d9df319fed Saeed Mahameed 2025-02-27 507 return 0;
ca557d9df319fed Saeed Mahameed 2025-02-27 508 NL_SET_ERR_MSG_MOD(extack, "Expected flag, got data");
ca557d9df319fed Saeed Mahameed 2025-02-27 509 break;
ca557d9df319fed Saeed Mahameed 2025-02-27 510 default:
ca557d9df319fed Saeed Mahameed 2025-02-27 511 NL_SET_ERR_MSG_FMT_MOD(extack,
ca557d9df319fed Saeed Mahameed 2025-02-27 512 "Not supported value type %d", type);
ca557d9df319fed Saeed Mahameed 2025-02-27 513 break;
ca557d9df319fed Saeed Mahameed 2025-02-27 514 }
ca557d9df319fed Saeed Mahameed 2025-02-27 515 return -EINVAL;
ca557d9df319fed Saeed Mahameed 2025-02-27 516 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-03-03 7:06 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-28 2:12 [PATCH net-next 00/14] devlink, mlx5: Add new parameters for link management and SRIOV/eSwitch configurations Saeed Mahameed
2025-02-28 2:12 ` [PATCH net-next 01/14] devlink: define enum for attr types of dynamic attributes Saeed Mahameed
2025-03-06 12:05 ` Simon Horman
2025-03-19 22:45 ` Saeed Mahameed
2025-02-28 2:12 ` [PATCH net-next 02/14] devlink: Add 'total_vfs' generic device param Saeed Mahameed
2025-02-28 12:39 ` Jiri Pirko
2025-03-04 16:42 ` Kamal Heib
2025-02-28 2:12 ` [PATCH net-next 03/14] net/mlx5: Implement cqe_compress_type via devlink params Saeed Mahameed
2025-02-28 2:12 ` [PATCH net-next 04/14] net/mlx5: Implement devlink enable_sriov parameter Saeed Mahameed
2025-02-28 12:46 ` Jiri Pirko
2025-02-28 18:19 ` Saeed Mahameed
2025-03-03 11:35 ` Jiri Pirko
2025-03-03 2:27 ` kernel test robot
2025-03-04 16:43 ` Kamal Heib
2025-02-28 2:12 ` [PATCH net-next 05/14] net/mlx5: Implement devlink total_vfs parameter Saeed Mahameed
2025-03-04 16:45 ` Kamal Heib
2025-02-28 2:12 ` [PATCH net-next 06/14] devlink: pass struct devlink_port * as arg to devlink_nl_param_fill() Saeed Mahameed
2025-02-28 2:12 ` [PATCH net-next 07/14] devlink: Implement port params registration Saeed Mahameed
2025-02-28 11:58 ` Przemek Kitszel
2025-02-28 12:28 ` Jiri Pirko
2025-02-28 13:23 ` Przemek Kitszel
2025-02-28 15:21 ` Jiri Pirko
2025-03-20 8:16 ` Przemek Kitszel
2025-02-28 2:12 ` [PATCH net-next 08/14] devlink: Implement get/dump netlink commands for port params Saeed Mahameed
2025-02-28 2:12 ` [PATCH net-next 09/14] devlink: Implement set netlink command " Saeed Mahameed
2025-02-28 12:49 ` Jiri Pirko
2025-02-28 2:12 ` [PATCH net-next 10/14] devlink: Add 'keep_link_up' generic devlink device param Saeed Mahameed
2025-02-28 12:51 ` Jiri Pirko
2025-02-28 2:12 ` [PATCH net-next 11/14] net/mlx5: Implement devlink keep_link_up port parameter Saeed Mahameed
2025-02-28 12:51 ` Jiri Pirko
2025-02-28 2:12 ` [PATCH net-next 12/14] devlink: Throw extack messages on param value validation error Saeed Mahameed
2025-02-28 12:53 ` Jiri Pirko
2025-03-03 7:06 ` Dan Carpenter [this message]
2025-02-28 2:12 ` [PATCH net-next 13/14] devlink: Implement devlink param multi attribute nested data values Saeed Mahameed
2025-02-28 2:12 ` [PATCH net-next 14/14] net/mlx5: Implement eSwitch hairpin per prio buffers devlink params Saeed Mahameed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=838b1bb7-776f-481a-bda0-015368012040@stanley.mountain \
--to=dan.carpenter@linaro.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gal@nvidia.com \
--cc=jiri@nvidia.com \
--cc=kuba@kernel.org \
--cc=leonro@nvidia.com \
--cc=lkp@intel.com \
--cc=netdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
--cc=pabeni@redhat.com \
--cc=saeed@kernel.org \
--cc=saeedm@nvidia.com \
--cc=tariqt@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox