2022-09-30 11:55:21

by Praghadeesh T K S

[permalink] [raw]
Subject: [PATCH] net: ethernet/mellanox: fix dereference before null check

net: ethernet/mellanox: fix dereference before null check
macsec dereferenced before null check
bug identified by coverity's linux-next weekly scan
Coverity CID No: 1525317

Signed-off-by: Praghadeesh T K S <[email protected]>
---
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
index 5da746d..e822c2a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
@@ -1846,11 +1846,11 @@ int mlx5e_macsec_init(struct mlx5e_priv *priv)
void mlx5e_macsec_cleanup(struct mlx5e_priv *priv)
{
struct mlx5e_macsec *macsec = priv->macsec;
- struct mlx5_core_dev *mdev = macsec->mdev;

if (!macsec)
return;

+ struct mlx5_core_dev *mdev = macsec->mdev;
mlx5_notifier_unregister(mdev, &macsec->nb);

mlx5e_macsec_fs_cleanup(macsec->macsec_fs);
--
2.25.1


2022-09-30 12:27:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] net: ethernet/mellanox: fix dereference before null check

On Fri, Sep 30, 2022 at 05:13:35PM +0530, Praghadeesh T K S wrote:
> net: ethernet/mellanox: fix dereference before null check
> macsec dereferenced before null check
> bug identified by coverity's linux-next weekly scan
> Coverity CID No: 1525317
>
> Signed-off-by: Praghadeesh T K S <[email protected]>
> ---
> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
> index 5da746d..e822c2a 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
> @@ -1846,11 +1846,11 @@ int mlx5e_macsec_init(struct mlx5e_priv *priv)
> void mlx5e_macsec_cleanup(struct mlx5e_priv *priv)
> {
> struct mlx5e_macsec *macsec = priv->macsec;
> - struct mlx5_core_dev *mdev = macsec->mdev;
>
> if (!macsec)
> return;
>
> + struct mlx5_core_dev *mdev = macsec->mdev;
> mlx5_notifier_unregister(mdev, &macsec->nb);
>
> mlx5e_macsec_fs_cleanup(macsec->macsec_fs);

Always test-build your changes before you get a grumpy maintainer asking
why you didn't test-build your changes...

Also, the original code is just fine, Coverity is wrong here, don't you
think? Look at the output of what the code is doing please...

thanks,

greg k-h

2022-09-30 16:27:37

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] net: ethernet/mellanox: fix dereference before null check

Hi Praghadeesh,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]
[also build test WARNING on next-20220929]
[cannot apply to net/master linus/master v6.0-rc7]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Praghadeesh-T-K-S/net-ethernet-mellanox-fix-dereference-before-null-check/20220930-194848
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 10c2aba89cc0535b23ebc795f44b8b8b16785ec9
config: s390-allyesconfig
compiler: s390-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/b435d653648a9712105eb8d3c65fb3a0b301ab0e
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Praghadeesh-T-K-S/net-ethernet-mellanox-fix-dereference-before-null-check/20220930-194848
git checkout b435d653648a9712105eb8d3c65fb3a0b301ab0e
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash drivers/net/ethernet/mellanox/mlx5/core/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c: In function 'mlx5e_macsec_cleanup':
>> drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c:1853:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
1853 | struct mlx5_core_dev *mdev = macsec->mdev;
| ^~~~~~


vim +1853 drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c

1845
1846 void mlx5e_macsec_cleanup(struct mlx5e_priv *priv)
1847 {
1848 struct mlx5e_macsec *macsec = priv->macsec;
1849
1850 if (!macsec)
1851 return;
1852
> 1853 struct mlx5_core_dev *mdev = macsec->mdev;

--
0-DAY CI Kernel Test Service
https://01.org/lkp


Attachments:
(No filename) (2.37 kB)
config (311.60 kB)
Download all attachments