diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/auth/auth.c | 14 | ||||
-rw-r--r-- | source3/auth/auth_unix.c | 14 |
2 files changed, 18 insertions, 10 deletions
diff --git a/source3/auth/auth.c b/source3/auth/auth.c index 0bdce9d1f4..a7fe1c624c 100644 --- a/source3/auth/auth.c +++ b/source3/auth/auth.c @@ -284,12 +284,16 @@ static NTSTATUS check_ntlm_password(const struct auth_context *auth_context, if (NT_STATUS_IS_OK(nt_status)) { unix_username = (*server_info)->unix_name; if (!(*server_info)->guest) { - char *rhost; + const char *rhost; - rhost = tsocket_address_inet_addr_string(user_info->remote_host, - talloc_tos()); - if (rhost == NULL) { - return NT_STATUS_NO_MEMORY; + if (tsocket_address_is_inet(user_info->remote_host, "ip")) { + rhost = tsocket_address_inet_addr_string(user_info->remote_host, + talloc_tos()); + if (rhost == NULL) { + return NT_STATUS_NO_MEMORY; + } + } else { + rhost = "127.0.0.1"; } /* We might not be root if we are an RPC call */ diff --git a/source3/auth/auth_unix.c b/source3/auth/auth_unix.c index 6f232ec66c..c8b5435abc 100644 --- a/source3/auth/auth_unix.c +++ b/source3/auth/auth_unix.c @@ -39,14 +39,18 @@ static NTSTATUS check_unix_security(const struct auth_context *auth_context, { NTSTATUS nt_status; struct passwd *pass = NULL; - char *rhost; + const char *rhost; DEBUG(10, ("Check auth for: [%s]\n", user_info->mapped.account_name)); - rhost = tsocket_address_inet_addr_string(user_info->remote_host, - talloc_tos()); - if (rhost == NULL) { - return NT_STATUS_NO_MEMORY; + if (tsocket_address_is_inet(user_info->remote_host, "ip")) { + rhost = tsocket_address_inet_addr_string(user_info->remote_host, + talloc_tos()); + if (rhost == NULL) { + return NT_STATUS_NO_MEMORY; + } + } else { + rhost = "127.0.0.1"; } become_root(); |