lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Thu, 22 Jul 2021 19:47:06 +0100
From:   Colin Ian King <colin.king@...onical.com>
To:     Subbaraya Sundeep <sbhatta@...vell.com>
Cc:     Sunil Goutham <sgoutham@...vell.com>,
        Linu Cherian <lcherian@...vell.com>,
        Linu Cherian <lcherian@...vell.com>,
        Jerin Jacob <jerinj@...vell.com>,
        hariprasad <hkelam@...vell.com>,
        "David S. Miller" <davem@...emloft.net>,
        Jakub Kicinski <kuba@...nel.org>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: re: octeontx2-af: Introduce internal packet switching

Hi,

Static analysis of linux-next with Coverity has found a couple of
uninitialized variable issues in the following commit:

commit 23109f8dd06d0bd04c9360cf7c501c97b0ab1545
Author: Subbaraya Sundeep <sbhatta@...vell.com>
Date:   Mon Jul 19 14:29:34 2021 +0530

    octeontx2-af: Introduce internal packet switching

The analysis is as follows:

195void rvu_switch_disable(struct rvu *rvu)
196{
197        struct npc_delete_flow_req uninstall_req = { 0 };
198        struct npc_mcam_free_entry_req free_req = { 0 };
199        struct rvu_switch *rswitch = &rvu->rswitch;
200        struct rvu_hwinfo *hw = rvu->hw;

   1. var_decl: Declaring variable numvfs without initializer.

201        int pf, vf, numvfs, hwvf;
202        struct msg_rsp rsp;
203        u16 pcifunc;
204        int err;
205

   2. Condition !rswitch->used_entries, taking false branch.

206        if (!rswitch->used_entries)
207                return;
208

   3. Condition pf < hw->total_pfs, taking true branch.

209        for (pf = 1; pf < hw->total_pfs; pf++) {

   4. Condition !is_pf_cgxmapped(rvu, pf), taking false branch.

210                if (!is_pf_cgxmapped(rvu, pf))
211                        continue;
212
213                pcifunc = pf << 10;
214                err = rvu_switch_install_rx_rule(rvu, pcifunc, 0xFFF);

   5. Condition err, taking false branch.

215                if (err)
216                        dev_err(rvu->dev,
217                                "Reverting RX rule for PF%d
failed(%d)\n",
218                                pf, err);
219

   Uninitialized scalar variable (UNINIT)
   6. uninit_use: Using uninitialized value numvfs.

   Uninitialized scalar variable (UNINIT)
   9. uninit_use: Using uninitialized value hwvf.

220                for (vf = 0; vf < numvfs; vf++, hwvf++) {
221                        pcifunc = pf << 10 | ((vf + 1) & 0x3FF);
222                        err = rvu_switch_install_rx_rule(rvu,
pcifunc, 0xFFF);

   7. Condition err, taking false branch.

223                        if (err)
224                                dev_err(rvu->dev,
225                                        "Reverting RX rule for
PF%dVF%d failed(%d)\n",
226                                        pf, vf, err);
227                }

   8. Jumping back to the beginning of the loop.

228        }
229
230        uninstall_req.start = rswitch->start_entry;
231        uninstall_req.end =  rswitch->start_entry +
rswitch->used_entries - 1;
232        free_req.all = 1;
233        rvu_mbox_handler_npc_delete_flow(rvu, &uninstall_req, &rsp);
234        rvu_mbox_handler_npc_mcam_free_entry(rvu, &free_req, &rsp);
235        rswitch->used_entries = 0;
236        kfree(rswitch->entry2pcifunc);
237}

Colin

Powered by blists - more mailing lists