Hans Leidekker (@hans) commented about libs/ldap/libldap/sasl_w.c:
if (!check_callback( prompt, SASL_CB_AUTHNAME ) || !check_callback( prompt, SASL_CB_GETREALM ) || !check_callback( prompt, SASL_CB_PASS )) return SASL_BADPARAM;
if (!(conn = calloc( 1, sizeof(*conn) ))) return SASL_NOMEM; - if (!(conn->servername = strdup( server ))) + + len = strlen( service ) + strlen( server ) + 2 /* '/' + '\0' */; + if (!(conn->target = malloc( len ))) { free( conn ); return SASL_NOMEM; } + strcpy( conn->target, service ); + strcat( conn->target, "/" ); + strcat( conn->target, server );
What if service is empty? It's not relevant for NTLM. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7978#note_102689