mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
r2650: fixed a memory leak in make_server_info()
(This used to be commit 4aba6e7101
)
This commit is contained in:
parent
ec0128ef01
commit
df6dce1065
@ -43,7 +43,7 @@ static NTSTATUS check_guest_security(const struct auth_context *auth_context,
|
||||
|
||||
if (!(user_info->internal_username.str
|
||||
&& *user_info->internal_username.str)) {
|
||||
nt_status = make_server_info_guest(server_info);
|
||||
nt_status = make_server_info_guest(auth_context, server_info);
|
||||
}
|
||||
|
||||
return nt_status;
|
||||
|
@ -304,7 +304,7 @@ static NTSTATUS check_sam_security(const struct auth_context *auth_context,
|
||||
return nt_status;
|
||||
}
|
||||
|
||||
if (!NT_STATUS_IS_OK(nt_status = make_server_info(server_info, username))) {
|
||||
if (!NT_STATUS_IS_OK(nt_status = make_server_info(auth_context, server_info, username))) {
|
||||
DEBUG(0,("check_sam_security: make_server_info_sam() failed with '%s'\n", nt_errstr(nt_status)));
|
||||
return nt_status;
|
||||
}
|
||||
|
@ -354,7 +354,7 @@ use this machine as the password server.\n"));
|
||||
if NT_STATUS_IS_OK(nt_status) {
|
||||
struct passwd *pass = Get_Pwnam(user_info->internal_username.str);
|
||||
if (pass) {
|
||||
nt_status = make_server_info_pw(server_info, pass);
|
||||
nt_status = make_server_info_pw(auth_context, server_info, pass);
|
||||
} else {
|
||||
nt_status = NT_STATUS_NO_SUCH_USER;
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ static NTSTATUS check_unix_security(const struct auth_context *auth_context,
|
||||
|
||||
if (NT_STATUS_IS_OK(nt_status)) {
|
||||
if (pass) {
|
||||
make_server_info_pw(server_info, pass);
|
||||
make_server_info_pw(auth_context, server_info, pass);
|
||||
} else {
|
||||
/* we need to do somthing more useful here */
|
||||
nt_status = NT_STATUS_NO_SUCH_USER;
|
||||
|
@ -399,10 +399,11 @@ NTSTATUS create_nt_user_token(TALLOC_CTX *mem_ctx,
|
||||
Make a user_info struct
|
||||
***************************************************************************/
|
||||
|
||||
NTSTATUS make_server_info(struct auth_serversupplied_info **server_info,
|
||||
NTSTATUS make_server_info(TALLOC_CTX *mem_ctx,
|
||||
struct auth_serversupplied_info **server_info,
|
||||
const char *username)
|
||||
{
|
||||
*server_info = talloc_p(NULL, struct auth_serversupplied_info);
|
||||
*server_info = talloc_p(mem_ctx, struct auth_serversupplied_info);
|
||||
if (!*server_info) {
|
||||
DEBUG(0,("make_server_info: malloc failed!\n"));
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
@ -415,12 +416,12 @@ NTSTATUS make_server_info(struct auth_serversupplied_info **server_info,
|
||||
/***************************************************************************
|
||||
Make (and fill) a user_info struct for a guest login.
|
||||
***************************************************************************/
|
||||
NTSTATUS make_server_info_guest(struct auth_serversupplied_info **server_info)
|
||||
NTSTATUS make_server_info_guest(TALLOC_CTX *mem_ctx, struct auth_serversupplied_info **server_info)
|
||||
{
|
||||
NTSTATUS nt_status;
|
||||
static const char zeros[16];
|
||||
|
||||
nt_status = make_server_info(server_info, "");
|
||||
nt_status = make_server_info(mem_ctx, server_info, "");
|
||||
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
return nt_status;
|
||||
|
@ -611,7 +611,7 @@ static NTSTATUS gensec_krb5_session_info(struct gensec_security *gensec_security
|
||||
|
||||
*session_info_out = NULL;
|
||||
|
||||
nt_status = make_server_info(&server_info, gensec_krb5_state->peer_principal);
|
||||
nt_status = make_server_info(gensec_security, &server_info, gensec_krb5_state->peer_principal);
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
return nt_status;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user