There was already a mail in mail list to report this issue: https://dpdk.org/ml/archives/dev/2018-May/101961.html Some of the issues fixed in v18.05, but some still remain. Following is the list of the remaining issues: [app/test-pmd/cmdline_mtr.c:115]: (error) Memory leak: dscp_table [app/test-pmd/flowgen.c:160]: (error) Uninitialized variable: ol_flags [app/test-pmd/tm.c:594]: (error) Memory leak: tnp.shared_shaper_id [drivers/bus/dpaa/base/fman/fman.c:557]: (error) Uninitialized variable: __if [drivers/bus/dpaa/base/qbman/qman.c:1220]: (error) Address of auto-variable 'p->shadow_dqrr[DQRR_PTR2IDX(dq)]' returned [drivers/bus/ifpga/ifpga_bus.c:436]: (warning) Possible null pointer dereference: c2 [drivers/crypto/ccp/ccp_pci.c:41]: (error) Resource leak: fp [drivers/crypto/dpaa_sec/dpaa_sec.c:662]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:731]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:826]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:881]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1020]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1132]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1258]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1353]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1392]: (error) Address of auto-variable 'ctx->job' returned [drivers/net/avf/base/avf_adminq.c:301]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_adminq.c:336]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_adminq.c:298]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_adminq.c:333]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_common.c:367]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_common.c:364]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_dev.c:808]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_dev.c] -> [drivers/net/axgbe/axgbe_dev.c]: (error) Invalid value: 0x0204_BUSY_WIDTH [drivers/net/axgbe/axgbe_ethdev.c] -> [drivers/net/axgbe/axgbe_ethdev.c]: (error) Invalid value: 0x0008_PR_WIDTH [drivers/net/axgbe/axgbe_i2c.c] -> [drivers/net/axgbe/axgbe_i2c.c]: (error) Invalid value: 0x006c_EN_WIDTH [drivers/net/axgbe/axgbe_phy_impl.c] -> [drivers/net/axgbe/axgbe_phy_impl.c]: (error) Invalid value: 0x0080_ID_WIDTH [drivers/net/axgbe/axgbe_rxtx.c:292]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c:592]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c] -> [drivers/net/axgbe/axgbe_rxtx.c]: (error) Invalid value: 0x48_PRXQ_WIDTH [drivers/net/bnx2x/bnx2x.c:3995]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:4000]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:8729]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:9765]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:1042]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:2711]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:9662]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:10295]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:598]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:638]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_rxr.c:486]: (error) Uninitialized variable: ag_cons [drivers/net/bnxt/bnxt_stats.c:211]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_stats.c:248]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2324]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2326]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2333]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2335]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_ich8lan.c:5169]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_ethdev.c:4721]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:154]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:156]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/enic/base/vnic_dev.c:757]: (warning) Possible null pointer dereference: notify_addr [drivers/net/i40e/base/i40e_adminq.c:1094]: (error) Uninitialized variable: ntu [drivers/net/i40e/base/i40e_adminq.c:1149]: (error) Uninitialized variable: ntu [drivers/net/i40e/base/i40e_adminq.c:1157]: (error) Uninitialized variable: ntu [drivers/net/i40e/i40e_ethdev.c:2070]: (error) Shifting 32-bit value by 36 bits is undefined behaviour [drivers/net/i40e/i40e_ethdev.c:2070]: (error) Signed integer overflow for expression '1<<cnt'. [drivers/net/ixgbe/base/ixgbe_type.h:3651]: (error) syntax error [drivers/net/mlx4/mlx4_flow.c:253]: (warning) Possible null pointer dereference: mask [drivers/net/nfp/nfp_net.c:317]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:558]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:565]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:573]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_dev.c:230]: (error) syntax error [drivers/net/qede/base/ecore_hw.c:74]: (error) syntax error [drivers/net/qede/base/ecore_init_fw_funcs.c:624]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:628]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:649]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:651]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:685]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:725]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:727]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:935]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:988]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:1743]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:1038]: (error) Array 'p_aeu->bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1079]: (error) Array 'sb_attn_sw->p_aeu_desc[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1387]: (error) Array 'aeu_descs[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1986]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:1991]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_l2.c:80]: (error) syntax error [drivers/net/qede/base/ecore_mcp.c:253]: (error) syntax error [drivers/net/qede/base/ecore_mng_tlv.c:1458]: (error) failed to expand 'OSAL_WARN', Wrong number of parameters for macro 'OSAL_WARN'. [drivers/net/qede/base/ecore_spq.c:590]: (error) syntax error [drivers/net/sfc/base/efx_ev.c:158]: (error) Uninitialized variable: eevop [drivers/net/sfc/base/efx_ev.c:161]: (error) Uninitialized variable: eevop [drivers/net/sfc/base/efx_intr.c:147]: (error) Uninitialized variable: eiop [drivers/net/sfc/base/efx_intr.c:150]: (error) Uninitialized variable: eiop [drivers/net/sfc/base/efx_mac.c:870]: (error) Uninitialized variable: emop [drivers/net/sfc/base/efx_mon.c:82]: (error) Uninitialized variable: emop [drivers/net/sfc/base/efx_phy.c:94]: (error) Uninitialized variable: epop [drivers/net/sfc/base/efx_rx.c:235]: (error) Uninitialized variable: erxop [drivers/net/sfc/base/efx_rx.c:238]: (error) Uninitialized variable: erxop [drivers/net/sfc/base/efx_tx.c:262]: (error) Uninitialized variable: etxop [drivers/net/sfc/base/efx_tx.c:265]: (error) Uninitialized variable: etxop [drivers/net/softnic/rte_eth_softnic_tm.c:2450]: (error) syntax error [drivers/net/tap/tap_bpf_program.c:109]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/tap/tap_netlink.c:233]: (warning) Possible null pointer dereference: data [drivers/net/tap/tap_tcmsgs.c:127]: (error) Uninitialized variable: opt [examples/bbdev_app/main.c:597]: (error) Memory pointed to by 'xstats' is freed twice. [examples/bbdev_app/main.c:604]: (error) Memory pointed to by 'xstats' is freed twice. [examples/flow_filtering/main.c:237]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)'. [examples/flow_filtering/main.c:237]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)'. [examples/flow_filtering/main.c:237]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)+1'. [examples/vhost/main.c:388]: (error) Common realloc mistake: 'socket_files' nulled but not freed upon failure [kernel/linux/kni/ethtool/igb/e1000_82575.c:2270]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2272]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2279]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2281]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c:1487]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_acl/acl_gen.c:166]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_eal/common/rte_reciprocal.c:105]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_eal/common/rte_service.c:750]: (warning) Possible null pointer dereference: f [lib/librte_eal/linuxapp/eal/eal_interrupts.c:423]: (error) syntax error [lib/librte_eal/linuxapp/eal/eal_memory.c:79]: (error) Uninitialized variable: tmp [lib/librte_eal/linuxapp/eal/eal_vfio.c:1803]: (error) Uninitialized variable: cur_grp [lib/librte_net/rte_net_crc.c:72]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_vhost/vdpa.c:74]: (error, inconclusive) Array 'vdpa_devices[1024]' accessed at index 1024, which is out of bounds. [test/test/test_reorder.c:272]: (error) Array 'robufs[8]' accessed at index 8, which is out of bounds.
> [lib/librte_eal/linuxapp/eal/eal_interrupts.c:423]: (error) syntax error Missing parentheses, but *technically* (cue xkcd) valid syntax after macro expansion, since macro will add those. > [lib/librte_eal/linuxapp/eal/eal_memory.c:79]: (error) Uninitialized > variable: tmp Variable value is unused, so false positive. > [lib/librte_eal/linuxapp/eal/eal_vfio.c:1803]: (error) Uninitialized > variable: > cur_grp False positive, because code is never reached if cur_grp value is not set. Still, no harm in fixing these warnings, so i submitted a patches for all three: http://dpdk.org/dev/patchwork/patch/40564/ http://dpdk.org/dev/patchwork/patch/40566/ http://dpdk.org/dev/patchwork/patch/40565/
Ferruh, The patches in the previous comment seem to have been accepted. Can we close this bug? Or there is more to be done? Thanks
@Ajit No, there's more to be done. I've only fixed the ones i've highlighted - there's a lot more stuff in there.
@Ajit, @Anatoly, As Anatoly said there are more issues higlighted by cppcheck, although some are fixed. I will share cppcheck results with latest code.
On 18.08-rc1, with command: cppcheck --force . 2> cppcheck_error.txt [app/test-pmd/cmdline_mtr.c:115]: (error) Memory leak: dscp_table [app/test-pmd/flowgen.c:160]: (error) Uninitialized variable: ol_flags [app/test-pmd/softnicfwd.c:464]: (error) Memory leak: tnp.shared_shaper_id [drivers/bus/dpaa/base/fman/fman.c:557]: (error) Uninitialized variable: __if [drivers/bus/dpaa/base/qbman/qman.c:1219]: (error) Address of auto-variable 'p->shadow_dqrr[DQRR_PTR2IDX(dq)]' returned [drivers/bus/ifpga/ifpga_bus.c:436]: (warning) Possible null pointer dereference: c2 [drivers/bus/pci/linux/pci_uio.c:299]: (error) Uninitialized variable: devname [drivers/crypto/ccp/ccp_pci.c:41]: (error) Resource leak: fp [drivers/crypto/dpaa_sec/dpaa_sec.c:675]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:744]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:839]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:894]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1033]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1145]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1271]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1366]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1405]: (error) Address of auto-variable 'ctx->job' returned [drivers/net/avf/base/avf_adminq.c:301]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_adminq.c:336]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_adminq.c:298]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_adminq.c:333]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_common.c:367]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_common.c:364]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_dev.c:808]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_dev.c] -> [drivers/net/axgbe/axgbe_dev.c]: (error) Invalid value: 0x0204_BUSY_WIDTH [drivers/net/axgbe/axgbe_ethdev.c] -> [drivers/net/axgbe/axgbe_ethdev.c]: (error) Invalid value: 0x0008_PR_WIDTH [drivers/net/axgbe/axgbe_i2c.c] -> [drivers/net/axgbe/axgbe_i2c.c]: (error) Invalid value: 0x006c_EN_WIDTH [drivers/net/axgbe/axgbe_phy_impl.c] -> [drivers/net/axgbe/axgbe_phy_impl.c]: (error) Invalid value: 0x0080_ID_WIDTH [drivers/net/axgbe/axgbe_rxtx.c:294]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c:592]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c] -> [drivers/net/axgbe/axgbe_rxtx.c]: (error) Invalid value: 0x48_PRXQ_WIDTH [drivers/net/bnx2x/bnx2x.c:3995]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:4000]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:8729]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:9765]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:1042]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:2711]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:9662]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:10295]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:637]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:677]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_rxr.c:486]: (error) Uninitialized variable: ag_cons [drivers/net/bnxt/bnxt_stats.c:211]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_stats.c:248]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_txr.c:298]: (error) Uninitialized variable: txbd1 [drivers/net/e1000/base/e1000_82575.c:2324]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2326]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2333]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2335]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_ich8lan.c:5169]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_ethdev.c:4724]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:154]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:156]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/enic/base/vnic_dev.c:773]: (warning) Possible null pointer dereference: notify_addr [drivers/net/i40e/base/i40e_adminq.c:1094]: (error) Uninitialized variable: ntu [drivers/net/i40e/base/i40e_adminq.c:1149]: (error) Uninitialized variable: ntu [drivers/net/i40e/base/i40e_adminq.c:1157]: (error) Uninitialized variable: ntu [drivers/net/ixgbe/base/ixgbe_type.h:3651]: (error) syntax error [drivers/net/mlx4/mlx4_flow.c:253]: (warning) Possible null pointer dereference: mask [drivers/net/mlx5/mlx5_flow.c:2448]: (warning) Possible null pointer dereference: flow [drivers/net/mlx5/mlx5_flow.c:2449]: (warning) Possible null pointer dereference: flow [drivers/net/mlx5/mlx5_flow.c:2450]: (warning) Possible null pointer dereference: flow [drivers/net/mlx5/mlx5_flow.c:2531]: (warning) Possible null pointer dereference: flow [drivers/net/netvsc/hn_rndis.c:462]: (warning) Possible null pointer dereference: idata [drivers/net/nfp/nfp_net.c:317]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:560]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:567]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:575]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_dev.c:230]: (error) syntax error [drivers/net/qede/base/ecore_hw.c:74]: (error) syntax error [drivers/net/qede/base/ecore_init_fw_funcs.c:624]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:628]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:649]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:651]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:685]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:725]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:727]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:935]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:988]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:1743]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:1038]: (error) Array 'p_aeu->bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1079]: (error) Array 'sb_attn_sw->p_aeu_desc[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1387]: (error) Array 'aeu_descs[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1986]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:1991]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_l2.c:80]: (error) syntax error [drivers/net/qede/base/ecore_mcp.c:253]: (error) syntax error [drivers/net/qede/base/ecore_mng_tlv.c:1458]: (error) failed to expand 'OSAL_WARN', Wrong number of parameters for macro 'OSAL_WARN'. [drivers/net/qede/base/ecore_spq.c:590]: (error) syntax error [drivers/net/sfc/base/efx_ev.c:158]: (error) Uninitialized variable: eevop [drivers/net/sfc/base/efx_ev.c:161]: (error) Uninitialized variable: eevop [drivers/net/sfc/base/efx_intr.c:147]: (error) Uninitialized variable: eiop [drivers/net/sfc/base/efx_intr.c:150]: (error) Uninitialized variable: eiop [drivers/net/sfc/base/efx_mac.c:870]: (error) Uninitialized variable: emop [drivers/net/sfc/base/efx_mon.c:82]: (error) Uninitialized variable: emop [drivers/net/sfc/base/efx_phy.c:94]: (error) Uninitialized variable: epop [drivers/net/sfc/base/efx_rx.c:235]: (error) Uninitialized variable: erxop [drivers/net/sfc/base/efx_rx.c:238]: (error) Uninitialized variable: erxop [drivers/net/sfc/base/efx_tx.c:262]: (error) Uninitialized variable: etxop [drivers/net/sfc/base/efx_tx.c:265]: (error) Uninitialized variable: etxop [drivers/net/softnic/rte_eth_softnic_tm.c:2459]: (error) syntax error [drivers/net/tap/tap_bpf_program.c:109]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/tap/tap_netlink.c:233]: (warning) Possible null pointer dereference: data [drivers/net/tap/tap_tcmsgs.c:127]: (error) Uninitialized variable: opt [examples/bbdev_app/main.c:593]: (error) Memory pointed to by 'xstats' is freed twice. [examples/bbdev_app/main.c:600]: (error) Memory pointed to by 'xstats' is freed twice. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)'. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)'. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)+1'. [examples/vhost/main.c:386]: (error) Common realloc mistake: 'socket_files' nulled but not freed upon failure [kernel/linux/kni/ethtool/igb/e1000_82575.c:2270]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2272]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2279]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2281]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c:1487]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_acl/acl_gen.c:166]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_eal/common/rte_reciprocal.c:105]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_eal/common/rte_service.c:798]: (warning) Possible null pointer dereference: f [lib/librte_net/rte_net_crc.c:72]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_vhost/vdpa.c:74]: (error, inconclusive) Array 'vdpa_devices[1024]' accessed at index 1024, which is out of bounds. [test/test/test_reorder.c:272]: (error) Array 'robufs[8]' accessed at index 8, which is out of bounds.
with v18.08-115-g55d6bb67c cppcheck --force . 2> cppcheck_error.txt [app/test-pmd/cmdline_mtr.c:115]: (error) Memory leak: dscp_table [app/test-pmd/flowgen.c:160]: (error) Uninitialized variable: ol_flags [app/test-pmd/softnicfwd.c:461]: (error) Memory leak: tnp.shared_shaper_id [drivers/bus/dpaa/base/fman/fman.c:557]: (error) Uninitialized variable: __if [drivers/bus/dpaa/base/qbman/qman.c:1219]: (error) Address of auto-variable 'p->shadow_dqrr[DQRR_PTR2IDX(dq)]' returned [drivers/bus/ifpga/ifpga_bus.c:436]: (warning) Possible null pointer dereference: c2 [drivers/bus/pci/linux/pci_uio.c:299]: (error) Uninitialized variable: devname [drivers/crypto/ccp/ccp_pci.c:41]: (error) Resource leak: fp [drivers/crypto/dpaa_sec/dpaa_sec.c:675]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:744]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:839]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:894]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1033]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1145]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1271]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1366]: (error) Address of auto-variable 'ctx->job' returned [drivers/crypto/dpaa_sec/dpaa_sec.c:1405]: (error) Address of auto-variable 'ctx->job' returned [drivers/net/avf/base/avf_adminq.c:301]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_adminq.c:336]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_adminq.c:298]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_adminq.c:333]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_common.c:367]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/avf/base/avf_common.c:364]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_dev.c:808]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_dev.c] -> [drivers/net/axgbe/axgbe_dev.c]: (error) Invalid value: 0x0204_BUSY_WIDTH [drivers/net/axgbe/axgbe_ethdev.c] -> [drivers/net/axgbe/axgbe_ethdev.c]: (error) Invalid value: 0x0008_PR_WIDTH [drivers/net/axgbe/axgbe_i2c.c] -> [drivers/net/axgbe/axgbe_i2c.c]: (error) Invalid value: 0x006c_EN_WIDTH [drivers/net/axgbe/axgbe_phy_impl.c] -> [drivers/net/axgbe/axgbe_phy_impl.c]: (error) Invalid value: 0x0080_ID_WIDTH [drivers/net/axgbe/axgbe_rxtx.c:294]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c:592]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c] -> [drivers/net/axgbe/axgbe_rxtx.c]: (error) Invalid value: 0x48_PRXQ_WIDTH [drivers/net/bnx2x/bnx2x.c:3989]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:3994]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:8711]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:9747]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:1040]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:2709]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:9660]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:10293]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:636]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:676]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_rxr.c:486]: (error) Uninitialized variable: ag_cons [drivers/net/bnxt/bnxt_stats.c:211]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_stats.c:248]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_txr.c:298]: (error) Uninitialized variable: txbd1 [drivers/net/cxgbe/base/t4_hw.c:4249]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2324]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2326]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2333]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2335]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_ich8lan.c:5169]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_ethdev.c:4724]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:154]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:156]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/enic/base/vnic_dev.c:773]: (warning) Possible null pointer dereference: notify_addr [drivers/net/i40e/base/i40e_adminq.c:1094]: (error) Uninitialized variable: ntu [drivers/net/i40e/base/i40e_adminq.c:1149]: (error) Uninitialized variable: ntu [drivers/net/i40e/base/i40e_adminq.c:1157]: (error) Uninitialized variable: ntu [drivers/net/ixgbe/base/ixgbe_type.h:3651]: (error) syntax error [drivers/net/mlx4/mlx4_flow.c:253]: (warning) Possible null pointer dereference: mask [drivers/net/mlx5/mlx5_flow.c:2623]: (warning) Possible null pointer dereference: flow [drivers/net/mlx5/mlx5_flow.c:2624]: (warning) Possible null pointer dereference: flow [drivers/net/mlx5/mlx5_flow.c:2625]: (warning) Possible null pointer dereference: flow [drivers/net/mlx5/mlx5_flow.c:2706]: (warning) Possible null pointer dereference: flow [drivers/net/netvsc/hn_rndis.c:467]: (warning) Possible null pointer dereference: idata [drivers/net/nfp/nfp_net.c:317]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:554]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:561]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:569]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:2882]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_dev.c:228]: (error) syntax error [drivers/net/qede/base/ecore_hw.c:72]: (error) syntax error [drivers/net/qede/base/ecore_init_fw_funcs.c:622]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:626]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:647]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:649]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:683]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:723]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:725]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:933]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:986]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:1741]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:1040]: (error) Array 'p_aeu->bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1081]: (error) Array 'sb_attn_sw->p_aeu_desc[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1389]: (error) Array 'aeu_descs[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1988]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:1993]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_l2.c:78]: (error) syntax error [drivers/net/qede/base/ecore_mcp.c:251]: (error) syntax error [drivers/net/qede/base/ecore_mng_tlv.c:1456]: (error) failed to expand 'OSAL_WARN', Wrong number of parameters for macro 'OSAL_WARN'. [drivers/net/qede/base/ecore_spq.c:588]: (error) syntax error [drivers/net/sfc/base/efx_ev.c:158]: (error) Uninitialized variable: eevop [drivers/net/sfc/base/efx_ev.c:161]: (error) Uninitialized variable: eevop [drivers/net/sfc/base/efx_intr.c:147]: (error) Uninitialized variable: eiop [drivers/net/sfc/base/efx_intr.c:150]: (error) Uninitialized variable: eiop [drivers/net/sfc/base/efx_mac.c:870]: (error) Uninitialized variable: emop [drivers/net/sfc/base/efx_mon.c:82]: (error) Uninitialized variable: emop [drivers/net/sfc/base/efx_phy.c:94]: (error) Uninitialized variable: epop [drivers/net/sfc/base/efx_rx.c:235]: (error) Uninitialized variable: erxop [drivers/net/sfc/base/efx_rx.c:238]: (error) Uninitialized variable: erxop [drivers/net/sfc/base/efx_tx.c:262]: (error) Uninitialized variable: etxop [drivers/net/sfc/base/efx_tx.c:265]: (error) Uninitialized variable: etxop [drivers/net/softnic/rte_eth_softnic_tm.c:2429]: (error) syntax error [drivers/net/tap/tap_bpf_program.c:109]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/tap/tap_netlink.c:233]: (warning) Possible null pointer dereference: data [drivers/net/tap/tap_tcmsgs.c:127]: (error) Uninitialized variable: opt [examples/bbdev_app/main.c:592]: (error) Memory pointed to by 'xstats' is freed twice. [examples/bbdev_app/main.c:599]: (error) Memory pointed to by 'xstats' is freed twice. [examples/flow_filtering/main.c:251]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)'. [examples/flow_filtering/main.c:251]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)'. [examples/flow_filtering/main.c:251]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)+1'. [examples/vhost/main.c:382]: (error) Common realloc mistake: 'socket_files' nulled but not freed upon failure [kernel/linux/kni/ethtool/igb/e1000_82575.c:2270]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2272]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2279]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2281]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c:1487]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_acl/acl_gen.c:166]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_eal/common/rte_reciprocal.c:105]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_eal/common/rte_service.c:798]: (warning) Possible null pointer dereference: f [lib/librte_net/rte_net_crc.c:72]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_vhost/vdpa.c:74]: (error, inconclusive) Array 'vdpa_devices[1024]' accessed at index 1024, which is out of bounds. [test/test/test_reorder.c:272]: (error) Array 'robufs[8]' accessed at index 8, which is out of bounds.
(In reply to Ferruh YIGIT from comment #6) > with v18.08-115-g55d6bb67c > cppcheck --force . 2> cppcheck_error.txt ... > [drivers/net/sfc/base/efx_ev.c:158]: (error) Uninitialized variable: eevop > [drivers/net/sfc/base/efx_ev.c:161]: (error) Uninitialized variable: eevop > [drivers/net/sfc/base/efx_intr.c:147]: (error) Uninitialized variable: eiop > [drivers/net/sfc/base/efx_intr.c:150]: (error) Uninitialized variable: eiop > [drivers/net/sfc/base/efx_mac.c:870]: (error) Uninitialized variable: emop > [drivers/net/sfc/base/efx_mon.c:82]: (error) Uninitialized variable: emop > [drivers/net/sfc/base/efx_phy.c:94]: (error) Uninitialized variable: epop > [drivers/net/sfc/base/efx_rx.c:235]: (error) Uninitialized variable: erxop > [drivers/net/sfc/base/efx_rx.c:238]: (error) Uninitialized variable: erxop > [drivers/net/sfc/base/efx_tx.c:262]: (error) Uninitialized variable: etxop > [drivers/net/sfc/base/efx_tx.c:265]: (error) Uninitialized variable: etxop All sfc errors are false and pretty trivial (default case has goto and non-default cases set corresponding variable).
On 18.08-rc2, with command: cppcheck --force . 2> cppcheck_error.txt output processed and removed know false positives and ones has already patch for it, removed "syntax error" (not sure what it is), grouped shifting 31, 32 times shift errors. [drivers/bus/dpaa/base/fman/fman.c:558]: (error) Uninitialized variable: __if [drivers/bus/dpaa/base/qbman/qman.c:1266]: (error) Address of auto-variable 'p->shadow_dqrr[DQRR_PTR2IDX(dq)]' returned [drivers/bus/ifpga/ifpga_bus.c:433]: (warning) Possible null pointer dereference: c2 [drivers/bus/pci/linux/pci_uio.c:299]: (error) Uninitialized variable: devname [drivers/net/enic/base/vnic_dev.c:807]: (warning) Possible null pointer dereference: notify_addr [drivers/net/mlx4/mlx4_flow.c:253]: (warning) Possible null pointer dereference: mask [drivers/net/mlx4/mlx4_utils.c:80]: (error) Pointer addition with NULL pointer. [drivers/net/netvsc/hn_rndis.c:467]: (warning) Possible null pointer dereference: idata [drivers/net/qede/base/ecore_int.c:1055]: (error) Array 'p_aeu->bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1096]: (error) Array 'sb_attn_sw->p_aeu_desc[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1405]: (error) Array 'aeu_descs[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_mng_tlv.c:1456]: (error) failed to expand 'OSAL_WARN', Wrong number of parameters for macro 'OSAL_WARN'. [drivers/net/tap/tap_netlink.c:233]: (warning) Possible null pointer dereference: data [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)'. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)'. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)+1'. [examples/vhost/main.c:382]: (error) Common realloc mistake: 'socket_files' nulled but not freed upon failure [test/test/test_reorder.c:272]: (error) Array 'robufs[8]' accessed at index 8, which is out of bounds. [drivers/net/axgbe/axgbe_dev.c:808]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c:294]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c:592]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:4015]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:4020]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:8771]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:9808]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:1073]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:3791]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:11399]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:12083]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:655]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:695]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_stats.c:355]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_stats.c:392]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/cxgbe/base/t4_hw.c:4249]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2324]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2326]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2333]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2335]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_ich8lan.c:5169]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_ethdev.c:4747]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:154]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:156]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:317]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:554]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:561]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:569]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:2911]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:622]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:626]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:647]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:649]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:683]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:723]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:725]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:933]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:986]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:1744]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:2006]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:2011]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/tap/tap_bpf_program.c:109]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2270]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2272]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2279]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2281]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c:1337]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c:1487]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_eal/common/rte_reciprocal.c:105]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/softnic/rte_eth_softnic_flow.c:582]: (error) Shifting 32-bit value by 32 bits is undefined behaviour
Some of the warnings already fixed. Need to run a new test with 19.02 release.
Created attachment 30 [details] 19.02 with --enable=all This has all warnings, some of them are improvements, so adding this as additional resource.
On 19.02, with command: cppcheck --force . 2> cppcheck_error.txt output processed and removed know false positives and ones has already patch for it, removed "syntax error" (not sure what it is), grouped shifting 31, 32 times shift errors. Whole text with all level of chekck enabled is also attached, https://bugs.dpdk.org/attachment.cgi?id=30 [drivers/bus/dpaa/base/fman/fman.c:558]: (error) Uninitialized variable: __if [drivers/bus/ifpga/ifpga_bus.c:438]: (warning) Possible null pointer dereference: c2 [drivers/net/enic/base/vnic_dev.c:833]: (warning) Possible null pointer dereference: notify_addr [drivers/net/mlx4/mlx4_utils.c:80]: (error) Pointer addition with NULL pointer. [drivers/net/mvpp2/mrvl_ethdev.c:184]: (warning) Possible null pointer dereference: buf [drivers/net/netvsc/hn_rndis.c:467]: (warning) Possible null pointer dereference: idata [drivers/net/qede/base/ecore_int.c:1055]: (error) Array 'p_aeu->bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1096]: (error) Array 'sb_attn_sw->p_aeu_desc[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1405]: (error) Array 'aeu_descs[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_mng_tlv.c:1456]: (error) failed to expand 'OSAL_WARN', Wrong number of parameters for macro 'OSAL_WARN'. [drivers/net/sfc/sfc_ef10_essb_rx.c:611]: (error) Address of local auto-variable assigned to a function parameter. [drivers/net/sfc/sfc_ef10_rx.c:656]: (error) Address of local auto-variable assigned to a function parameter. [drivers/net/sfc/sfc_ef10_tx.c:858]: (error) Address of local auto-variable assigned to a function parameter. [drivers/net/sfc/sfc_rx.c:435]: (error) Address of local auto-variable assigned to a function parameter. [drivers/net/sfc/sfc_tx.c:940]: (error) Address of local auto-variable assigned to a function parameter. [drivers/net/tap/tap_netlink.c:236]: (warning) Possible null pointer dereference: data [examples/bbdev_app/main.c:592]: (error) Memory pointed to by 'xstats' is freed twice. [examples/bbdev_app/main.c:599]: (error) Memory pointed to by 'xstats' is freed twice. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)'. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)'. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)+1'. [test/test/test_latencystats.c:84]: (error) Array 'lat_stats_strings[4]' accessed at index 4, which is out of bounds. [test/test/test_latencystats.c:84]: (error) Array 'names[4]' accessed at index 4, which is out of bounds. [drivers/net/axgbe/axgbe_dev.c:808]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c:294]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/axgbe/axgbe_rxtx.c:592]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:4023]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:4028]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:8781]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/bnx2x.c:9823]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:1073]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:3791]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:11399]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnx2x/elink.c:12083]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:655]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_ethdev.c:695]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_stats.c:355]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/bnxt/bnxt_stats.c:392]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/cxgbe/base/t4_hw.c:4249]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2324]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2326]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2333]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_82575.c:2335]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/base/e1000_ich8lan.c:5169]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_ethdev.c:4770]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:154]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/e1000/igb_pf.c:156]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:326]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:563]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:570]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:578]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/nfp/nfp_net.c:2930]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:622]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:626]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:647]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:649]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:683]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:723]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:725]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:933]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:986]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_init_fw_funcs.c:1744]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:2006]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/qede/base/ecore_int.c:2011]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [drivers/net/softnic/rte_eth_softnic_flow.c:582]: (error) Shifting 32-bit value by 32 bits is undefined behaviour [drivers/net/tap/tap_bpf_program.c:109]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2270]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2272]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2279]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2281]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c:1337]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c:1487]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_eal/common/rte_reciprocal.c:90]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [test/test/test_bpf.c:286]: (error) Shifting 32-bit value by 32 bits is undefined behaviour
Created attachment 38 [details] 19.05-rc1 results
with v19.05-rc1, cppcheck --force . 2> cppcheck_error.txt, attached output. The filtered version of outstanding issues: [app/test/test_latencystats.c:84]: (error) Array 'lat_stats_strings[4]' accessed at index 4, which is out of bounds. [app/test/test_latencystats.c:84]: (error) Array 'names[4]' accessed at index 4, which is out of bounds. [drivers/bus/dpaa/base/fman/fman.c:559]: (error) Uninitialized variable: __if [drivers/bus/ifpga/ifpga_bus.c:438]: (warning) Possible null pointer dereference: c2 [drivers/net/i40e/base/i40e_adminq.c:1078]: (error) Uninitialized variable: ntu [drivers/net/mlx4/mlx4_utils.c:80]: (error) Pointer addition with NULL pointer. [drivers/net/qede/base/ecore_int.c:1055]: (error) Array 'p_aeu->bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1096]: (error) Array 'sb_attn_sw->p_aeu_desc[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_int.c:1405]: (error) Array 'aeu_descs[i].bits[32]' accessed at index 9998, which is out of bounds. [drivers/net/qede/base/ecore_mng_tlv.c:1456]: (error) failed to expand 'OSAL_WARN', Wrong number of parameters for macro 'OSAL_WARN'. [drivers/net/sfc/sfc_ef10_essb_rx.c:612]: (error) Address of local auto-variable assigned to a function parameter. [drivers/net/sfc/sfc_ef10_rx.c:657]: (error) Address of local auto-variable assigned to a function parameter. [drivers/net/sfc/sfc_ef10_tx.c:962]: (error) Address of local auto-variable assigned to a function parameter. [drivers/net/sfc/sfc_rx.c:464]: (error) Address of local auto-variable assigned to a function parameter. [drivers/net/sfc/sfc_tx.c:1031]: (error) Address of local auto-variable assigned to a function parameter. [examples/bbdev_app/main.c:592]: (error) Memory pointed to by 'xstats' is freed twice. [examples/bbdev_app/main.c:599]: (error) Memory pointed to by 'xstats' is freed twice. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)'. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)'. [examples/flow_filtering/main.c:236]: (error) Signed integer overflow for expression '(192<<24)+(168<<16)+(1<<8)+1'. [lib/librte_power/power_pstate_cpufreq.c:203]: (error) Resource leak: f_base [lib/librte_power/power_pstate_cpufreq.c:222]: (error) Resource leak: f_base [drivers/net/enic/base/vnic_dev.c:852] -> [drivers/net/enic/base/vnic_dev.c:871] -> [drivers/net/enic/base/vnic_dev.c:833]: (error) Null pointer dereference: notify_addr [drivers/net/tap/tap_netlink.c:314] -> [drivers/net/tap/tap_netlink.c:236]: (error) Null pointer dereference: data [kernel/linux/kni/ethtool/igb/e1000_82575.c:2270]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2272]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2279]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/igb/e1000_82575.c:2281]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c:1337]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [kernel/linux/kni/ethtool/ixgbe/ixgbe_82599.c:1487]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [lib/librte_eal/common/rte_reciprocal.c:90]: (error) Shifting signed 32-bit value by 31 bits is undefined behaviour [app/test/test_bpf.c:286]: (error) Shifting 32-bit value by 32 bits is undefined behaviour [drivers/net/softnic/rte_eth_softnic_flow.c:582]: (error) Shifting 32-bit value by 32 bits is undefined behaviour
Resolved in http://git.dpdk.org/dpdk/commit/?id=902f389f9b