diff options
author | Günther Deschner <gd@samba.org> | 2010-03-12 00:30:52 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2010-03-12 00:37:30 +0100 |
commit | 8194fc37571257d4b5df3e78f5e38e914b18dc43 (patch) | |
tree | f2c0d2fa6135007e579f31c1ef3abbe1c57a60f9 /source3 | |
parent | 1a10a5949d9f2148bdcd61a864104e5c305f8a59 (diff) | |
download | samba-8194fc37571257d4b5df3e78f5e38e914b18dc43.tar.gz samba-8194fc37571257d4b5df3e78f5e38e914b18dc43.tar.bz2 samba-8194fc37571257d4b5df3e78f5e38e914b18dc43.zip |
s3-netlogon: Fix bug #7237: _netr_SamLogon segfaults for clients sending NULL domain.
Thanks to Marc Muehlfeld <muehlfeld@medizinische-genetik.de>.
Guenther
Diffstat (limited to 'source3')
-rw-r--r-- | source3/rpc_server/srv_netlog_nt.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c index b9bfda9a83..b41b3d1070 100644 --- a/source3/rpc_server/srv_netlog_nt.c +++ b/source3/rpc_server/srv_netlog_nt.c @@ -1142,17 +1142,23 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p, case NetlogonServiceInformation: case NetlogonInteractiveTransitiveInformation: case NetlogonServiceTransitiveInformation: - nt_username = logon->password->identity_info.account_name.string; - nt_domain = logon->password->identity_info.domain_name.string; - nt_workstation = logon->password->identity_info.workstation.string; + nt_username = logon->password->identity_info.account_name.string ? + logon->password->identity_info.account_name.string : ""; + nt_domain = logon->password->identity_info.domain_name.string ? + logon->password->identity_info.domain_name.string : ""; + nt_workstation = logon->password->identity_info.workstation.string ? + logon->password->identity_info.workstation.string : ""; DEBUG(3,("SAM Logon (Interactive). Domain:[%s]. ", lp_workgroup())); break; case NetlogonNetworkInformation: case NetlogonNetworkTransitiveInformation: - nt_username = logon->network->identity_info.account_name.string; - nt_domain = logon->network->identity_info.domain_name.string; - nt_workstation = logon->network->identity_info.workstation.string; + nt_username = logon->network->identity_info.account_name.string ? + logon->network->identity_info.account_name.string : ""; + nt_domain = logon->network->identity_info.domain_name.string ? + logon->network->identity_info.domain_name.string : ""; + nt_workstation = logon->network->identity_info.workstation.string ? + logon->network->identity_info.workstation.string : ""; DEBUG(3,("SAM Logon (Network). Domain:[%s]. ", lp_workgroup())); break; |