diff options
author | Andrew Bartlett <abartlet@samba.org> | 2004-10-20 02:10:46 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:01:56 -0500 |
commit | a71b9135710995a381f0bfaea29fe1a9da93ce20 (patch) | |
tree | 45e2a9fa2fdc5b4fb5074dc3ee93a2e25f88d549 /source4 | |
parent | 1ee3a7419e04b0d7574792ceebecc89b4a849a73 (diff) | |
download | samba-a71b9135710995a381f0bfaea29fe1a9da93ce20.tar.gz samba-a71b9135710995a381f0bfaea29fe1a9da93ce20.tar.bz2 samba-a71b9135710995a381f0bfaea29fe1a9da93ce20.zip |
r3075: Initialise (and check for intialisation) of the private pointer to
ensure we don't segfault on the cleanup from an incomplete schannel
bind.
Andrew Bartlett
(This used to be commit 173f29a1d8db111d5adb258eead5379d681d3bb2)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/libcli/auth/schannel.c | 6 | ||||
-rw-r--r-- | source4/librpc/rpc/dcerpc_schannel.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/source4/libcli/auth/schannel.c b/source4/libcli/auth/schannel.c index aa89e7b84f..2e752f0172 100644 --- a/source4/libcli/auth/schannel.c +++ b/source4/libcli/auth/schannel.c @@ -278,8 +278,10 @@ NTSTATUS schannel_sign_packet(struct schannel_state *state, */ void schannel_end(struct schannel_state **state) { - talloc_destroy((*state)->mem_ctx); - (*state) = NULL; + if (*state) { + talloc_destroy((*state)->mem_ctx); + (*state) = NULL; + } } /* diff --git a/source4/librpc/rpc/dcerpc_schannel.c b/source4/librpc/rpc/dcerpc_schannel.c index 7bb871811a..700a2a40fb 100644 --- a/source4/librpc/rpc/dcerpc_schannel.c +++ b/source4/librpc/rpc/dcerpc_schannel.c @@ -279,9 +279,13 @@ static NTSTATUS dcerpc_schannel_start(struct gensec_security *gensec_security) static NTSTATUS dcerpc_schannel_server_start(struct gensec_security *gensec_security) { NTSTATUS status; + struct dcerpc_schannel_state *dce_schan_state; status = dcerpc_schannel_start(gensec_security); + dce_schan_state = gensec_security->private_data; + dce_schan_state->schannel_state = NULL; + if (!NT_STATUS_IS_OK(status)) { return status; } |