diff options
author | Alexander Bokovoy <ab@samba.org> | 2005-08-16 10:57:21 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:33:24 -0500 |
commit | ad9022e304ec07e56d2af1aaeb99a6f1faea62aa (patch) | |
tree | cc255a8ce671eddde4d8e6d8b7ba17f50ce5f8dd | |
parent | 2f195406b6f1ff943eb000741e09cafbdbdaf58e (diff) | |
download | samba-ad9022e304ec07e56d2af1aaeb99a6f1faea62aa.tar.gz samba-ad9022e304ec07e56d2af1aaeb99a6f1faea62aa.tar.bz2 samba-ad9022e304ec07e56d2af1aaeb99a6f1faea62aa.zip |
r9320: Fix premature dereference bug found by Coverty and also get rid of non-used memory context
(This used to be commit 127e06492a545940443c93e9aec66eebefa26dc2)
-rw-r--r-- | source4/ntvfs/unixuid/vfs_unixuid.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/source4/ntvfs/unixuid/vfs_unixuid.c b/source4/ntvfs/unixuid/vfs_unixuid.c index 41b1d7965d..928ff8241b 100644 --- a/source4/ntvfs/unixuid/vfs_unixuid.c +++ b/source4/ntvfs/unixuid/vfs_unixuid.c @@ -146,8 +146,7 @@ static NTSTATUS unixuid_setup_security(struct ntvfs_module_context *ntvfs, struct smbsrv_request *req, struct unix_sec_ctx **sec) { struct unixuid_private *private = ntvfs->private_data; - struct security_token *token = req->session->session_info->security_token; - void *ctx = talloc_new(req); + struct security_token *token; struct unix_sec_ctx *newsec; NTSTATUS status; @@ -155,6 +154,8 @@ static NTSTATUS unixuid_setup_security(struct ntvfs_module_context *ntvfs, return NT_STATUS_ACCESS_DENIED; } + token = req->session->session_info->security_token; + *sec = save_unix_security(req); if (*sec == NULL) { return NT_STATUS_NO_MEMORY; @@ -165,7 +166,6 @@ static NTSTATUS unixuid_setup_security(struct ntvfs_module_context *ntvfs, } else { status = nt_token_to_unix_security(ntvfs, req, token, &newsec); if (!NT_STATUS_IS_OK(status)) { - talloc_free(ctx); return status; } if (private->last_sec_ctx) { @@ -178,12 +178,9 @@ static NTSTATUS unixuid_setup_security(struct ntvfs_module_context *ntvfs, status = set_unix_security(newsec); if (!NT_STATUS_IS_OK(status)) { - talloc_free(ctx); return status; } - talloc_free(ctx); - return NT_STATUS_OK; } |