Hans Leidekker (@hans) commented about dlls/wldap32/option.c:
ldap_memfree( infoU.ldapai_vendor_name );
infoW->ldapai_vendor_name = strUtoW( infoU.ldapai_vendor_name );
if (infoU.ldapai_vendor_name && !infoW->ldapai_vendor_name)
{
ret = WLDAP32_LDAP_NO_MEMORY;
strarrayfreeW( infoW->ldapai_extensions );
goto api_info_done; }
infoW->ldapai_api_version = infoU.ldapai_api_version;
infoW->ldapai_protocol_version = infoU.ldapai_protocol_version;
infoW->ldapai_vendor_version = infoU.ldapai_vendor_version;
+api_info_done:
ldap_memvfree( (void **)infoU.ldapai_extensions );
ldap_memfree( infoU.ldapai_vendor_name );
I'd prefer not to use a goto here. It will be shorter too. Let's use strarrayfreeU/W and free instead of ldap_memvfree/ldap_value_freeW and ldap_memfree/W.