> -----Original Message----- > From: Hunt, David <david.h...@intel.com> > Sent: Monday, July 4, 2022 8:32 PM > To: Khan, Hamza <hamza.k...@intel.com>; Carew, Alan > <alan.ca...@intel.com>; De Lara Guarch, Pablo > <pablo.de.lara.gua...@intel.com> > Cc: dev@dpdk.org; sta...@dpdk.org > Subject: Re: [PATCH 2/2] examples/vm_power_manager: use safe version of > list iterator > > > On 01/06/2022 11:54, Hamza Khan wrote: > > Currently, when vm_power_manager exits, we are using a LIST_FOREACH > > macro to iterate over VM info structures while freeing them. This > > leads to use-after-free error. To address this, use the newly added > > LIST_FOREACH_SAFE macro. > > > > Fixes: e8ae9b662506 ("examples/vm_power: channel manager and > monitor > > in host") > > Cc: alan.ca...@intel.com > > Cc: sta...@dpdk.org > > > > Signed-off-by: Hamza Khan <hamza.k...@intel.com> > > --- > > examples/vm_power_manager/channel_manager.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/examples/vm_power_manager/channel_manager.c > > b/examples/vm_power_manager/channel_manager.c > > index 838465ab4b..bc95cec8d6 100644 > > --- a/examples/vm_power_manager/channel_manager.c > > +++ b/examples/vm_power_manager/channel_manager.c > > @@ -1005,9 +1005,9 @@ channel_manager_exit(void) > > { > > unsigned i; > > char mask[RTE_MAX_LCORE]; > > - struct virtual_machine_info *vm_info; > > + struct virtual_machine_info *vm_info, *tmp; > > > > - LIST_FOREACH(vm_info, &vm_list_head, vms_info) { > > + LIST_FOREACH_SAFE(vm_info, &vm_list_head, vms_info, tmp) { > > > > rte_spinlock_lock(&(vm_info->config_spinlock)); > > > > > Acked-by: David Hunt <david.h...@intel.com> >
Tested-by: Weiyuan Li <weiyuanx...@intel.com>