2021-02-15 17:37:26

by Colin King

[permalink] [raw]
Subject: re: octeontx2-af: cn10k: MAC internal loopback support

Hi,

Static analysis on linux-next today using Coverity found an issue in the
following commit:

commit 3ad3f8f93c81f81d6e28b2e286b03669cc1fb3b0
Author: Hariprasad Kelam <[email protected]>
Date: Thu Feb 11 21:28:34 2021 +0530

octeontx2-af: cn10k: MAC internal loopback support

The analysis is as follows:

723 static int rvu_cgx_config_intlbk(struct rvu *rvu, u16 pcifunc, bool en)
724 {
725 struct mac_ops *mac_ops;

1. var_decl: Declaring variable lmac_id without initializer.

726 u8 cgx_id, lmac_id;
727

2. Condition !is_cgx_config_permitted(rvu, pcifunc), taking false branch.

728 if (!is_cgx_config_permitted(rvu, pcifunc))
729 return -EPERM;
730

Uninitialized scalar variable (UNINIT)

731 mac_ops = get_mac_ops(rvu_cgx_pdata(cgx_id, rvu));
732

Uninitialized scalar variable (UNINIT)
3. uninit_use_in_call: Using uninitialized value lmac_id when calling
*mac_ops->mac_lmac_intl_lbk.

733 return mac_ops->mac_lmac_intl_lbk(rvu_cgx_pdata(cgx_id, rvu),
734 lmac_id, en);
735 }

Variables cgx_id and lmac_id are no longer being initialized and garbage
values are being passed into function calls. Originally, these
variables were being initialized with a call to rvu_get_cgx_lmac_id()
but that has now been removed.

Colin


2021-02-15 18:05:48

by Geethasowjanya Akula

[permalink] [raw]
Subject: Re: [EXT] re: octeontx2-af: cn10k: MAC internal loopback support

Hi Colin,

I have submitted the patch fixing the reported issue to net-next branch.

Thank you,
Geetha.

________________________________________
From: Colin Ian King <[email protected]>
Sent: Monday, February 15, 2021 10:22 PM
To: Hariprasad Kelam
Cc: Sunil Kovvuri Goutham; Linu Cherian; Geethasowjanya Akula; Jerin Jacob Kollanukkaran; Hariprasad Kelam; Subbaraya Sundeep Bhatta; [email protected]; [email protected]
Subject: [EXT] re: octeontx2-af: cn10k: MAC internal loopback support

External Email

----------------------------------------------------------------------
Hi,

Static analysis on linux-next today using Coverity found an issue in the
following commit:

commit 3ad3f8f93c81f81d6e28b2e286b03669cc1fb3b0
Author: Hariprasad Kelam <[email protected]>
Date: Thu Feb 11 21:28:34 2021 +0530

octeontx2-af: cn10k: MAC internal loopback support

The analysis is as follows:

723 static int rvu_cgx_config_intlbk(struct rvu *rvu, u16 pcifunc, bool en)
724 {
725 struct mac_ops *mac_ops;

1. var_decl: Declaring variable lmac_id without initializer.

726 u8 cgx_id, lmac_id;
727

2. Condition !is_cgx_config_permitted(rvu, pcifunc), taking false branch.

728 if (!is_cgx_config_permitted(rvu, pcifunc))
729 return -EPERM;
730

Uninitialized scalar variable (UNINIT)

731 mac_ops = get_mac_ops(rvu_cgx_pdata(cgx_id, rvu));
732

Uninitialized scalar variable (UNINIT)
3. uninit_use_in_call: Using uninitialized value lmac_id when calling
*mac_ops->mac_lmac_intl_lbk.

733 return mac_ops->mac_lmac_intl_lbk(rvu_cgx_pdata(cgx_id, rvu),
734 lmac_id, en);
735 }

Variables cgx_id and lmac_id are no longer being initialized and garbage
values are being passed into function calls. Originally, these
variables were being initialized with a call to rvu_get_cgx_lmac_id()
but that has now been removed.

Colin