Skip to contentSkip to conversation

qlcnic: dcb: a couple off by one bugs

PATCH Applied Dan Carpenter 3 participants 3 messages Mar 1, 2014 – Mar 3, 2014

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 qlcnic: dcb: a couple off by one bugs

The ->tc_cfg[] array has QLC_DCB_MAX_TC (8) elements so the check is off by one. These functions are always called with valid values though so it doesn't affect how the code works.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c +2 -2
index 77f1bce432d2..7d4f54912bad 100644
@@ -807,7 +807,7 @@ qlcnic_dcb_get_pg_tc_cfg_tx(struct net_device *netdev, int tc, u8 *prio,
 	    !type->tc_param_valid)
 		return;
 
-	if (tc < 0 || (tc > QLC_DCB_MAX_TC))
+	if (tc < 0 || (tc >= QLC_DCB_MAX_TC))
 		return;
 
 	tc_cfg = &type->tc_cfg[tc];
@@ -843,7 +843,7 @@ static void qlcnic_dcb_get_pg_bwg_cfg_tx(struct net_device *netdev, int pgid,
 	    !type->tc_param_valid)
 		return;
 
-	if (pgid < 0 || pgid > QLC_DCB_MAX_PG)
+	if (pgid < 0 || pgid >= QLC_DCB_MAX_PG)
 		return;
 
 	pgcfg = &type->pg_cfg[pgid];
Acked-by on v1 1/1
#1 lore raw
Quoted 39 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Dan Carpenter
Sent: Saturday, March 01, 2014 7:25 PM
To: Shahed Shaikh
Cc: Dept-HSG Linux NIC Dev; [email protected]; netdev
Subject: [patch] qlcnic: dcb: a couple off by one bugs

The ->tc_cfg[] array has QLC_DCB_MAX_TC (8) elements so the check is off by one. These functions are always called with valid values though so it doesn't affect how the code works.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c +1 -1
index 77f1bce432d2..7d4f54912bad 100644
@@ -807,7 +807,7 @@ qlcnic_dcb_get_pg_tc_cfg_tx(struct net_device
 *netdev, int tc, u8 *prio,
 	    !type->tc_param_valid)
 		return;
 
-	if (tc < 0 || (tc > QLC_DCB_MAX_TC))
+	if (tc < 0 || (tc >= QLC_DCB_MAX_TC))
 		return;
 
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c +1 -1
 	tc_cfg = &type->tc_cfg[tc];
@@ -843,7 +843,7 @@ static void qlcnic_dcb_get_pg_bwg_cfg_tx(struct
 net_device *netdev, int pgid,
 	    !type->tc_param_valid)
 		return;
 
-	if (pgid < 0 || pgid > QLC_DCB_MAX_PG)
+	if (pgid < 0 || pgid >= QLC_DCB_MAX_PG)
 		return;
 
Quoted 1 line

pgcfg = &type->pg_cfg[pgid];