diff options
author | Stefan Metzmacher <metze@samba.org> | 2013-08-05 10:46:47 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2013-08-10 11:11:53 +0200 |
commit | 9177a0d1c1c92c45ef92fbda55fc6dd8aeb76b6c (patch) | |
tree | 8d95643563153eb29675423f9606c25ec43f4081 /libcli/auth/spnego_parse.c | |
parent | f1e60142e12deb560e3c62441fd9ff2acd086b60 (diff) | |
download | samba-9177a0d1c1c92c45ef92fbda55fc6dd8aeb76b6c.tar.gz samba-9177a0d1c1c92c45ef92fbda55fc6dd8aeb76b6c.tar.bz2 samba-9177a0d1c1c92c45ef92fbda55fc6dd8aeb76b6c.zip |
libcli/auth: add more const to spnego_negTokenInit->mechTypes
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Sat Aug 10 11:11:54 CEST 2013 on sn-devel-104
Diffstat (limited to 'libcli/auth/spnego_parse.c')
-rw-r--r-- | libcli/auth/spnego_parse.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/libcli/auth/spnego_parse.c b/libcli/auth/spnego_parse.c index 2c73613e3b..b1ca07d637 100644 --- a/libcli/auth/spnego_parse.c +++ b/libcli/auth/spnego_parse.c @@ -42,12 +42,14 @@ static bool read_negTokenInit(struct asn1_data *asn1, TALLOC_CTX *mem_ctx, switch (context) { /* Read mechTypes */ - case ASN1_CONTEXT(0): + case ASN1_CONTEXT(0): { + const char **mechTypes; + asn1_start_tag(asn1, ASN1_CONTEXT(0)); asn1_start_tag(asn1, ASN1_SEQUENCE(0)); - token->mechTypes = talloc(mem_ctx, const char *); - if (token->mechTypes == NULL) { + mechTypes = talloc(mem_ctx, const char *); + if (mechTypes == NULL) { asn1->has_error = true; return false; } @@ -56,22 +58,25 @@ static bool read_negTokenInit(struct asn1_data *asn1, TALLOC_CTX *mem_ctx, char *oid; const char **p; p = talloc_realloc(mem_ctx, - token->mechTypes, + mechTypes, const char *, i+2); if (p == NULL) { - TALLOC_FREE(token->mechTypes); + talloc_free(mechTypes); asn1->has_error = true; return false; } - token->mechTypes = p; - asn1_read_OID(asn1, token->mechTypes, &oid); - token->mechTypes[i] = oid; + mechTypes = p; + + asn1_read_OID(asn1, mechTypes, &oid); + mechTypes[i] = oid; } - token->mechTypes[i] = NULL; + mechTypes[i] = NULL; + token->mechTypes = mechTypes; asn1_end_tag(asn1); asn1_end_tag(asn1); break; + } /* Read reqFlags */ case ASN1_CONTEXT(1): asn1_start_tag(asn1, ASN1_CONTEXT(1)); @@ -366,7 +371,7 @@ bool spnego_free_data(struct spnego_data *spnego) switch(spnego->type) { case SPNEGO_NEG_TOKEN_INIT: if (spnego->negTokenInit.mechTypes) { - talloc_free(spnego->negTokenInit.mechTypes); + talloc_free(discard_const(spnego->negTokenInit.mechTypes)); } data_blob_free(&spnego->negTokenInit.reqFlags); data_blob_free(&spnego->negTokenInit.mechToken); @@ -390,7 +395,7 @@ out: } bool spnego_write_mech_types(TALLOC_CTX *mem_ctx, - const char **mech_types, + const char * const *mech_types, DATA_BLOB *blob) { struct asn1_data *asn1 = asn1_init(mem_ctx); |