> -----Original Message----- > From: Neil Horman [mailto:nhorman at tuxdriver.com] > Sent: Friday, February 27, 2015 10:05 PM > To: Ouyang, Changchun > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH v2] af_packet: Fix some klocwork errors > > On Fri, Feb 27, 2015 at 08:49:13AM +0800, Ouyang Changchun wrote: > > Fix possible memory leak issue: free kvlist before return; Fix > > possible resource lost issue: close qssockfd before return; > > > > Signed-off-by: Changchun Ouyang <changchun.ouyang at intel.com> > > --- > > change in v2: > > - Make the error exit point a common path. > > > > lib/librte_pmd_af_packet/rte_eth_af_packet.c | 11 +++++++++-- > > 1 file changed, 9 insertions(+), 2 deletions(-) > > > > diff --git a/lib/librte_pmd_af_packet/rte_eth_af_packet.c > > b/lib/librte_pmd_af_packet/rte_eth_af_packet.c > > index 80e9bdf..c675724 100644 > > --- a/lib/librte_pmd_af_packet/rte_eth_af_packet.c > > +++ b/lib/librte_pmd_af_packet/rte_eth_af_packet.c > > @@ -694,6 +694,8 @@ error: > > } > > rte_free(*internals); > > } > > + if (qsockfd != -1) > > + close(qsockfd); > This is insufficient. qsockfd is a loop index that is reassigned for each tx > queue we have. In the error path you need to do this, and loop through the > tx queues, closing each tx_queue->sockfd. >
Thanks, will have a v3 to resolve it. Changchun