On Tue, Oct 1, 2019 at 2:54 PM Kevin Traynor <ktray...@redhat.com> wrote: > > Previously rx/tx_queues were passed into eth_from_pcaps_common() > as ptrs and were checked for being NULL. > > In commit da6ba28f0540 ("net/pcap: use a struct to pass user options") > that changed to pass in a ptr to a pmd_devargs_all which contains > the rx/tx_queues. > > The parameter checking was not updated as part of that commit and > coverity caught that there was still a check if rx/tx_queues were > NULL, apparently after they had been dereferenced. > > Fix that by checking the pmd_devargs_all ptr and removing the NULL > checks on rx/tx_queues. > > 1231 struct pmd_devargs *rx_queues = &devargs_all->rx_queues; > 1232 struct pmd_devargs *tx_queues = &devargs_all->tx_queues; > 1233 const unsigned int nb_rx_queues = rx_queues->num_of_queue; > deref_ptr: Directly dereferencing pointer tx_queues. > 1234 const unsigned int nb_tx_queues = tx_queues->num_of_queue; > 1235 unsigned int i; > 1236 > 1237 /* do some parameter checking */ > CID 345004: Dereference before null check (REVERSE_INULL) > [select issue] > 1238 if (rx_queues == NULL && nb_rx_queues > 0) > 1239 return -1; > CID 345029 (#1 of 1): Dereference before null check (REVERSE_INULL) > check_after_deref: Null-checking tx_queues suggests that it may be > null, but it has already been dereferenced on all paths leading to > the check. > 1240 if (tx_queues == NULL && nb_tx_queues > 0) > 1241 return -1; > > Coverity issue: 345029 > Coverity issue: 345044 > Fixes: da6ba28f0540 ("net/pcap: use a struct to pass user options") > Cc: cian.ferri...@intel.com > Cc: sta...@dpdk.org > > Signed-off-by: Kevin Traynor <ktray...@redhat.com>
This patch hides the coverity warning. But can't we just remove those checks? Iiuc, the checks on NULL pointers are unnecessary since https://git.dpdk.org/dpdk/commit/?id=a0fce1193ce13a50c00624cb36605ebef7a3e60b. -- David Marchand