net/i40e/base: fix potential out of bound array access
authorJingjing Wu <jingjing.wu@intel.com>
Wed, 22 Mar 2017 09:24:55 +0000 (17:24 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 4 Apr 2017 16:59:46 +0000 (18:59 +0200)
This is fix for klocwork issue where dcbcfg->numapps could
be greater than size of array (i.e dcbcfg->app[I40E_DCBX_MAX_APPS]).
The fix makes sure the array is not accessed past size of array
(i.e. I40E_DCBX_MAX_APPS).

Fixes: 166dceeeeafc ("i40e/base: add parsing for CEE DCBX TLVs")
Cc: stable@dpdk.org
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
drivers/net/i40e/base/i40e_dcb.c

index 26c344f..9b5405d 100644 (file)
@@ -396,6 +396,8 @@ static void i40e_parse_cee_app_tlv(struct i40e_cee_feat_tlv *tlv,
        dcbcfg->numapps = length / sizeof(*app);
        if (!dcbcfg->numapps)
                return;
+       if (dcbcfg->numapps > I40E_DCBX_MAX_APPS)
+               dcbcfg->numapps = I40E_DCBX_MAX_APPS;
 
        for (i = 0; i < dcbcfg->numapps; i++) {
                u8 up, selector;