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.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3011#note_35092