X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=blobdiff_plain;f=util_token.c;h=e089690935d4c5fe92ccd22cb49d250d762d96f1;hp=bb7ef7a342949c562472c811982195cbb9aa98ee;hb=c782e76527626566bb4d6fddf38f83beea0aa72a;hpb=5501c782934834e459272cf8c467c7b86caeb1e0 diff --git a/util_token.c b/util_token.c index bb7ef7a..e089690 100644 --- a/util_token.c +++ b/util_token.c @@ -197,12 +197,11 @@ makeTokenHeader( */ int -verifyTokenHeader( - const gss_OID_desc * mech, - size_t *body_size, - unsigned char **buf_in, - size_t toksize_in, - enum gss_eap_token_type tok_type) +verifyTokenHeader(gss_OID mech, + size_t *body_size, + unsigned char **buf_in, + size_t toksize_in, + enum gss_eap_token_type tok_type) { unsigned char *buf = *buf_in; ssize_t seqsize; @@ -239,8 +238,13 @@ verifyTokenHeader( toid.elements = buf; buf += toid.length; - if (!oidEqual(&toid, mech)) + if (mech->elements == NULL) { + *mech = toid; + if (toid.length == 0) + return EINVAL; + } else if (!oidEqual(&toid, mech)) { return EINVAL; + } if (tok_type != TOK_TYPE_NONE) { if (toksize -= 2 < 0)