2018-12-21 07:31:59

by Kangjie Lu

[permalink] [raw]
Subject: [PATCH] net: 80003es2lan: fix a missing check of read failure

When e1000_read_kmrn_reg_80003es2lan() fails, "kum_reg_data" is
uninitialized and may contain random value. However, it is further
used in the following execution, which will lead to undefined
behaviors.
The fix checks the failure of e1000_read_kmrn_reg_80003es2lan() and
returns with its error code if it fails.

Signed-off-by: Kangjie Lu <[email protected]>
---
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
index 257bd59bc9c6..8a6f8e80e062 100644
--- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c
+++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
@@ -754,8 +754,11 @@ static s32 e1000_init_hw_80003es2lan(struct e1000_hw *hw)
return ret_val;

/* Disable IBIST slave mode (far-end loopback) */
- e1000_read_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
- &kum_reg_data);
+ ret_val =
+ e1000_read_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
+ &kum_reg_data);
+ if (ret_val)
+ return ret_val;
kum_reg_data |= E1000_KMRNCTRLSTA_IBIST_DISABLE;
e1000_write_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
kum_reg_data);
--
2.17.1



2018-12-23 05:00:19

by Jeff Kirsher

[permalink] [raw]
Subject: Re: [PATCH] net: 80003es2lan: fix a missing check of read failure

On Thu, 2018-12-20 at 15:23 -0600, Kangjie Lu wrote:
> When e1000_read_kmrn_reg_80003es2lan() fails, "kum_reg_data" is
> uninitialized and may contain random value. However, it is further
> used in the following execution, which will lead to undefined
> behaviors.
> The fix checks the failure of e1000_read_kmrn_reg_80003es2lan() and
> returns with its error code if it fails.
>
> Signed-off-by: Kangjie Lu <[email protected]>
> ---
> drivers/net/ethernet/intel/e1000e/80003es2lan.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)

This is a good catch, although we do not want to exit out on failure. I
have an alternative patch to resolve both issues, which I will submit later
today. Just need to finish holiday shopping for my wife... :-)


Attachments:
signature.asc (849.00 B)
This is a digitally signed message part