[dpdk-dev] [PATCH] Fix librte_pmd_pcap driver double stop error

Neil Horman nhorman at tuxdriver.com
Mon Oct 6 16:35:06 CEST 2014


On Sat, Oct 04, 2014 at 07:14:21PM +0100, Nicolás Pernas Maradei wrote:
> Hi,
> 
> You are correct, the parameters received in the driver are allocated in
> devargs_list (char *params variable). However, they already get strdup'd in
> rte_kvargs_parse(). This newly allocated string is part of kvlist and never
> freed up. The params variable is never used again so it can be freed by
> someone else using free_devargs_list(). I'd say it's safe enough to set up
> pointers in the way it's currently done.
> 
> Nico.
> 

ok, that seems reasonable
Acked-by: Neil Horman <nhorman at tuxdriver.com>

> On 2014-09-29 15:24, Neil Horman wrote:
> >On Wed, Sep 10, 2014 at 05:17:05PM -0300, Nicolás Pernas Maradei wrote:
> >>From: Nicolás Pernas Maradei <nico at emutex.com>
> >>
> >>librte_pmd_pcap driver was opening the pcap/interfaces only at init time
> >>and
> >>closing them only when the port was being stopped. This behaviour would
> >>cause
> >>problems (leading to segfault) if the user closed the port 2 times. The
> >>first
> >>time the pcap/interfaces would be normally closed but libpcap would
> >>throw an
> >>error causing a segfault if the closed pcaps/interfaces were closed
> >>again.
> >>This behaviour is solved by re-openning pcaps/interfaces when the port
> >>is
> >>started (only if these weren't open already for example at init time).
> >>
> >>Signed-off-by: Nicolás Pernas Maradei <nico at emutex.com>
> >
> >This patch assigns pointers to strings that are allocated in the
> >devargs_list.
> >Given that there exists an api interface free_devargs_list(), I'm not sure
> >that
> >whats being done here is consistently safe.  It seems like you should dup
> >the
> >strings to make sure you always have the storage allocated, or find some
> >other
> >method to store the needed information.
> >
> >Neil
> 


More information about the dev mailing list