On 08/08/2010 02:56 PM, Matthias Bolte wrote: > In case an optional object cannot be found the lookup function is > left early and the cleanup code is not executed. Add a success label > and goto instead of an early return. > > This pattern occurs in some other functions too. > --- > src/esx/esx_vi.c | 14 ++++++++------ > 1 files changed, 8 insertions(+), 6 deletions(-) Definitely a leak to plug, but: > > diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c > index c6b2b63..b064b11 100644 > --- a/src/esx/esx_vi.c > +++ b/src/esx/esx_vi.c > @@ -2254,7 +2254,7 @@ esxVI_LookupVirtualMachineByUuid(esxVI_Context *ctx, const unsigned char *uuid, > > if (managedObjectReference == NULL) { > if (occurrence == esxVI_Occurrence_OptionalItem) { > - return 0; > + goto success; Why not use the idiom: result = 0; goto cleanup; > } else { > ESX_VI_ERROR(VIR_ERR_NO_DOMAIN, > _("Could not find domain with UUID '%s'"), > @@ -2270,6 +2270,7 @@ esxVI_LookupVirtualMachineByUuid(esxVI_Context *ctx, const unsigned char *uuid, > goto cleanup; > } > > + success: > result = 0; > > cleanup: such that you only have to have one label, instead of adding a new label? All three instances follow the same pattern. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list