On Mon, Mar 22, 2010 at 01:55:45AM +0100, Matthias Bolte wrote: > If esxVI_String_DeepCopyValue or esxVI_SelectionSpec_AppendToList fail > then selectionSpec would leak. Add a free call in the failure path to > fix the leak. > --- > src/esx/esx_vi.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c > index aa46532..63ddaa4 100644 > --- a/src/esx/esx_vi.c > +++ b/src/esx/esx_vi.c > @@ -1163,8 +1163,6 @@ esxVI_BuildFullTraversalSpecItem(esxVI_SelectionSpec **fullTraversalSpecList, > currentSelectSetName = selectSetNames; > > while (currentSelectSetName != NULL && *currentSelectSetName != '\0') { > - selectionSpec = NULL; > - > if (esxVI_SelectionSpec_Alloc(&selectionSpec) < 0 || > esxVI_String_DeepCopyValue(&selectionSpec->name, > currentSelectSetName) < 0 || > @@ -1173,6 +1171,7 @@ esxVI_BuildFullTraversalSpecItem(esxVI_SelectionSpec **fullTraversalSpecList, > goto failure; > } > > + selectionSpec = NULL; > currentSelectSetName += strlen(currentSelectSetName) + 1; > } > } > @@ -1186,6 +1185,7 @@ esxVI_BuildFullTraversalSpecItem(esxVI_SelectionSpec **fullTraversalSpecList, > > failure: > esxVI_TraversalSpec_Free(&traversalSpec); > + esxVI_SelectionSpec_Free(&selectionSpec); > > return -1; > } ACK Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list