diff options
Diffstat (limited to 'fs/cifs/asn1.c')
| -rw-r--r-- | fs/cifs/asn1.c | 53 | 
1 files changed, 5 insertions, 48 deletions
diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c index cfd1ce34e0b..1d36db11477 100644 --- a/fs/cifs/asn1.c +++ b/fs/cifs/asn1.c @@ -614,53 +614,10 @@ decode_negTokenInit(unsigned char *security_blob, int length,  		}  	} -	/* mechlistMIC */ -	if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -		/* Check if we have reached the end of the blob, but with -		   no mechListMic (e.g. NTLMSSP instead of KRB5) */ -		if (ctx.error == ASN1_ERR_DEC_EMPTY) -			goto decode_negtoken_exit; -		cFYI(1, "Error decoding last part negTokenInit exit3"); -		return 0; -	} else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { -		/* tag = 3 indicating mechListMIC */ -		cFYI(1, "Exit 4 cls = %d con = %d tag = %d end = %p (%d)", -			cls, con, tag, end, *end); -		return 0; -	} - -	/* sequence */ -	if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -		cFYI(1, "Error decoding last part negTokenInit exit5"); -		return 0; -	} else if ((cls != ASN1_UNI) || (con != ASN1_CON) -		   || (tag != ASN1_SEQ)) { -		cFYI(1, "cls = %d con = %d tag = %d end = %p (%d)", -			cls, con, tag, end, *end); -	} - -	/* sequence of */ -	if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -		cFYI(1, "Error decoding last part negTokenInit exit 7"); -		return 0; -	} else if ((cls != ASN1_CTX) || (con != ASN1_CON)) { -		cFYI(1, "Exit 8 cls = %d con = %d tag = %d end = %p (%d)", -			cls, con, tag, end, *end); -		return 0; -	} - -	/* general string */ -	if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { -		cFYI(1, "Error decoding last part negTokenInit exit9"); -		return 0; -	} else if ((cls != ASN1_UNI) || (con != ASN1_PRI) -		   || (tag != ASN1_GENSTR)) { -		cFYI(1, "Exit10 cls = %d con = %d tag = %d end = %p (%d)", -			cls, con, tag, end, *end); -		return 0; -	} -	cFYI(1, "Need to call asn1_octets_decode() function for %s", -		ctx.pointer);	/* is this UTF-8 or ASCII? */ -decode_negtoken_exit: +	/* +	 * We currently ignore anything at the end of the SPNEGO blob after +	 * the mechTypes have been parsed, since none of that info is +	 * used at the moment. +	 */  	return 1;  }  |