#include "cifspdu.h"
#include "cifsglob.h"
#include "cifs_debug.h"
+#include "cifsproto.h"
/*****************************************************************************
*
#define SPNEGO_OID_LEN 7
#define NTLMSSP_OID_LEN 10
-unsigned long SPNEGO_OID[7] = { 1, 3, 6, 1, 5, 5, 2 };
-unsigned long NTLMSSP_OID[10] = { 1, 3, 6, 1, 4, 1, 311, 2, 2, 10 };
+static unsigned long SPNEGO_OID[7] = { 1, 3, 6, 1, 5, 5, 2 };
+static unsigned long NTLMSSP_OID[10] = { 1, 3, 6, 1, 4, 1, 311, 2, 2, 10 };
/*
* ASN.1 context.
unsigned char **eoc,
unsigned int *cls, unsigned int *con, unsigned int *tag)
{
- unsigned int def, len;
+ unsigned int def = 0;
+ unsigned int len = 0;
if (!asn1_id_decode(ctx, cls, con, tag))
return 0;
if (def)
*eoc = ctx->pointer + len;
else
- *eoc = 0;
+ *eoc = NULL;
return 1;
}
{
unsigned char ch;
- if (eoc == 0) {
+ if (eoc == NULL) {
if (!asn1_octet_decode(ctx, &ch))
return 0;
return 1;
}
-static unsigned char
+static int
asn1_oid_decode(struct asn1_ctx *ctx,
unsigned char *eoc, unsigned long **oid, unsigned int *len)
{
struct asn1_ctx ctx;
unsigned char *end;
unsigned char *sequence_end;
- unsigned long *oid;
+ unsigned long *oid = NULL;
unsigned int cls, con, tag, oidlen, rc;
int use_ntlmssp = FALSE;
- *secType = NTLM; /* BB eventually make Kerberos or NLTMSSP the default */
+ *secType = NTLM; /* BB eventually make Kerberos or NLTMSSP the default */
/* cifs_dump_mem(" Received SecBlob ", security_blob, length); */
return 0;
}
if ((tag == ASN1_OJI) && (con == ASN1_PRI)) {
- asn1_oid_decode(&ctx, end, &oid, &oidlen);
- cFYI(1,
- ("OID len = %d oid = 0x%lx 0x%lx 0x%lx 0x%lx",
- oidlen, *oid, *(oid + 1), *(oid + 2),
- *(oid + 3)));
- rc = compare_oid(oid, oidlen, NTLMSSP_OID,
+ rc = asn1_oid_decode(&ctx, end, &oid, &oidlen);
+ if(rc) {
+ cFYI(1,
+ ("OID len = %d oid = 0x%lx 0x%lx 0x%lx 0x%lx",
+ oidlen, *oid, *(oid + 1), *(oid + 2),
+ *(oid + 3)));
+ rc = compare_oid(oid, oidlen, NTLMSSP_OID,
NTLMSSP_OID_LEN);
- kfree(oid);
- if (rc)
- use_ntlmssp = TRUE;
+ kfree(oid);
+ if (rc)
+ use_ntlmssp = TRUE;
+ }
} else {
cFYI(1,("This should be an oid what is going on? "));
}