diff options
author | Andrew Tridgell <tridge@samba.org> | 2007-05-21 12:47:18 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:52:43 -0500 |
commit | 931f594cf16b8c7f9f416d7a8831432b783a0ec8 (patch) | |
tree | 3fca99de9b35314f20034e015b6e0a7fa436f634 /source4/auth/gensec | |
parent | 43da48650ac5e8eaa3d8445c096fd9386c0afb18 (diff) | |
download | samba-931f594cf16b8c7f9f416d7a8831432b783a0ec8.tar.gz samba-931f594cf16b8c7f9f416d7a8831432b783a0ec8.tar.bz2 samba-931f594cf16b8c7f9f416d7a8831432b783a0ec8.zip |
r23036: error checking on asn1_init() failure
(This used to be commit 26cf8494084c0106ef0e1c9b6ef40eeadf945ef2)
Diffstat (limited to 'source4/auth/gensec')
-rw-r--r-- | source4/auth/gensec/spnego_parse.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source4/auth/gensec/spnego_parse.c b/source4/auth/gensec/spnego_parse.c index c768d1e847..5382402206 100644 --- a/source4/auth/gensec/spnego_parse.c +++ b/source4/auth/gensec/spnego_parse.c @@ -265,7 +265,7 @@ static BOOL write_negTokenTarg(struct asn1_data *asn1, struct spnego_negTokenTar ssize_t spnego_read_data(TALLOC_CTX *mem_ctx, DATA_BLOB data, struct spnego_data *token) { - struct asn1_data *asn1 = asn1_init(mem_ctx); + struct asn1_data *asn1; ssize_t ret = -1; uint8_t context; @@ -275,6 +275,11 @@ ssize_t spnego_read_data(TALLOC_CTX *mem_ctx, DATA_BLOB data, struct spnego_data return ret; } + asn1 = asn1_init(mem_ctx); + if (asn1 == NULL) { + return -1; + } + asn1_load(asn1, data); if (!asn1_peek_uint8(asn1, &context)) { @@ -311,6 +316,10 @@ ssize_t spnego_write_data(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, struct spnego_da struct asn1_data *asn1 = asn1_init(mem_ctx); ssize_t ret = -1; + if (asn1 == NULL) { + return -1; + } + switch (spnego->type) { case SPNEGO_NEG_TOKEN_INIT: asn1_push_tag(asn1, ASN1_APPLICATION(0)); |