I'm not really sure if the last patch is the right way to fix the issue since I couldn't find where tls_w.c originates from.
-- v3: ldap: Free the output buffer after every InitializeSecurityContextA() call (Valgrind).
From: Sven Baars sbaars@codeweavers.com
--- dlls/wldap32/winldap_private.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/dlls/wldap32/winldap_private.h b/dlls/wldap32/winldap_private.h index e834f9d4e6f..ce9a7cc3fa8 100644 --- a/dlls/wldap32/winldap_private.h +++ b/dlls/wldap32/winldap_private.h @@ -868,6 +868,7 @@ static inline void modfreeU( LDAPMod *mod ) bvarrayfreeU( mod->mod_vals.modv_bvals ); else strarrayfreeU( mod->mod_vals.modv_strvals ); + free( mod->mod_type ); free( mod ); }
@@ -1010,6 +1011,7 @@ static inline void modfreeW( LDAPModW *mod ) bvarrayfreeW( mod->mod_vals.modv_bvals ); else strarrayfreeW( mod->mod_vals.modv_strvals ); + free( mod->mod_type ); free( mod ); }
From: Sven Baars sbaars@codeweavers.com
--- dlls/wldap32/parse.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/wldap32/parse.c b/dlls/wldap32/parse.c index 26e8de14c85..9eff55e4f0e 100644 --- a/dlls/wldap32/parse.c +++ b/dlls/wldap32/parse.c @@ -188,6 +188,7 @@ ULONG CDECL ldap_parse_resultW( LDAP *ld, WLDAP32_LDAPMessage *result, ULONG *re if (referrals) *referrals = strarrayUtoW( referralsU ); if (serverctrls) *serverctrls = controlarrayUtoW( serverctrlsU );
+ if (free) ldap_msgfree( result ); ldap_memfree( matchedU ); ldap_memfree( errorU ); ldap_memfree( referralsU );
From: Sven Baars sbaars@codeweavers.com
--- libs/ldap/libldap/tls_w.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libs/ldap/libldap/tls_w.c b/libs/ldap/libldap/tls_w.c index c798d4249c0..39cb5436053 100644 --- a/libs/ldap/libldap/tls_w.c +++ b/libs/ldap/libldap/tls_w.c @@ -228,7 +228,9 @@ tlsw_session_connect( LDAP *ld, tls_session *session, const char *name_in ) expected -= size; }
- out_bufs[0].cbBuffer = max_token; + FreeContextBuffer( out_bufs[0].pvBuffer ); + out_bufs[0].pvBuffer = NULL; + status = InitializeSecurityContextA( &s->cred_handle, &s->ctxt_handle, (SEC_CHAR *)name_in, flags, 0, 0, &in_buf_desc, 0, NULL, &out_buf_desc, &attrs, NULL ); if ( status == SEC_E_INCOMPLETE_MESSAGE ) {
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=135475
Your paranoid android.
=== debian11b (64 bit WoW report) ===
reg.exe: add.c:937: Test failed: got exit code 1, expected 0 add.c:938: Test failed: RegQueryValueEx failed: got error 2
This merge request was approved by Hans Leidekker.