Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 73503
b: refs/heads/master
c: e545937
h: refs/heads/master
i:
  73501: 34a76b2
  73499: 5f20bdb
  73495: 7b6157f
  73487: f7dd401
  73471: bc90049
v: v3
  • Loading branch information
Jeff Layton authored and Steve French committed Nov 3, 2007
1 parent ac7efae commit 678e423
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 84a15b935481fa651cc6ec60aed015312b67adda
refs/heads/master: e545937a51fe0cc78cea55752764daabb81ec96d
35 changes: 24 additions & 11 deletions trunk/fs/cifs/asn1.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,12 @@

#define SPNEGO_OID_LEN 7
#define NTLMSSP_OID_LEN 10
#define KRB5_OID_LEN 7
#define MSKRB5_OID_LEN 7
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 };
static unsigned long KRB5_OID[7] = { 1, 2, 840, 113554, 1, 2, 2 };
static unsigned long MSKRB5_OID[7] = { 1, 2, 840, 48018, 1, 2, 2 };

/*
* ASN.1 context.
Expand Down Expand Up @@ -457,6 +461,7 @@ decode_negTokenInit(unsigned char *security_blob, int length,
unsigned long *oid = NULL;
unsigned int cls, con, tag, oidlen, rc;
int use_ntlmssp = FALSE;
int use_kerberos = FALSE;

*secType = NTLM; /* BB eventually make Kerberos or NLTMSSP the default*/

Expand Down Expand Up @@ -545,18 +550,28 @@ decode_negTokenInit(unsigned char *security_blob, int length,
return 0;
}
if ((tag == ASN1_OJI) && (con == ASN1_PRI)) {
rc = asn1_oid_decode(&ctx, end, &oid, &oidlen);
if (rc) {
if (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, NTLMSSP_OID_LEN);
kfree(oid);
if (rc)

if (compare_oid(oid, oidlen,
MSKRB5_OID,
MSKRB5_OID_LEN))
use_kerberos = TRUE;
else if (compare_oid(oid, oidlen,
KRB5_OID,
KRB5_OID_LEN))
use_kerberos = TRUE;
else if (compare_oid(oid, oidlen,
NTLMSSP_OID,
NTLMSSP_OID_LEN))
use_ntlmssp = TRUE;

kfree(oid);
}
} else {
cFYI(1, ("Should be an oid what is going on?"));
Expand Down Expand Up @@ -609,12 +624,10 @@ decode_negTokenInit(unsigned char *security_blob, int length,
ctx.pointer)); /* is this UTF-8 or ASCII? */
}

/* if (use_kerberos)
*secType = Kerberos
else */
if (use_ntlmssp) {
if (use_kerberos)
*secType = Kerberos;
else if (use_ntlmssp)
*secType = NTLMSSP;
}

return 1;
}
1 change: 1 addition & 0 deletions trunk/fs/cifs/cifsfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include "cifs_fs_sb.h"
#include <linux/mm.h>
#include <linux/key-type.h>
#include "cifs_spnego.h"
#define CIFS_MAGIC_NUMBER 0xFF534D42 /* the first four bytes of SMB PDUs */

#ifdef CONFIG_CIFS_QUOTA
Expand Down
3 changes: 1 addition & 2 deletions trunk/fs/cifs/cifssmb.c
Original file line number Diff line number Diff line change
Expand Up @@ -647,8 +647,7 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses)
count - 16,
&server->secType);
if (rc == 1) {
/* BB Need to fill struct for sessetup here */
rc = -EOPNOTSUPP;
rc = 0;
} else {
rc = -EINVAL;
}
Expand Down

0 comments on commit 678e423

Please sign in to comment.