Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6
Pull cifs fixes from Steve French: "Three small cifs fixes. One fixes a hang under stress, and the other two are security related" * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: cifs: fix MUST SecurityFlags filtering Complete oplock break jobs before closing file handle cifs: use memzero_explicit to clear stack buffer
This commit is contained in:
commit
5ee0e96260
@ -606,9 +606,11 @@ cifs_security_flags_handle_must_flags(unsigned int *flags)
|
||||
*flags = CIFSSEC_MUST_NTLMV2;
|
||||
else if ((*flags & CIFSSEC_MUST_NTLM) == CIFSSEC_MUST_NTLM)
|
||||
*flags = CIFSSEC_MUST_NTLM;
|
||||
else if ((*flags & CIFSSEC_MUST_LANMAN) == CIFSSEC_MUST_LANMAN)
|
||||
else if (CIFSSEC_MUST_LANMAN &&
|
||||
(*flags & CIFSSEC_MUST_LANMAN) == CIFSSEC_MUST_LANMAN)
|
||||
*flags = CIFSSEC_MUST_LANMAN;
|
||||
else if ((*flags & CIFSSEC_MUST_PLNTXT) == CIFSSEC_MUST_PLNTXT)
|
||||
else if (CIFSSEC_MUST_PLNTXT &&
|
||||
(*flags & CIFSSEC_MUST_PLNTXT) == CIFSSEC_MUST_PLNTXT)
|
||||
*flags = CIFSSEC_MUST_PLNTXT;
|
||||
|
||||
*flags |= signflags;
|
||||
|
@ -366,6 +366,7 @@ void cifsFileInfo_put(struct cifsFileInfo *cifs_file)
|
||||
struct cifsLockInfo *li, *tmp;
|
||||
struct cifs_fid fid;
|
||||
struct cifs_pending_open open;
|
||||
bool oplock_break_cancelled;
|
||||
|
||||
spin_lock(&cifs_file_list_lock);
|
||||
if (--cifs_file->count > 0) {
|
||||
@ -397,7 +398,7 @@ void cifsFileInfo_put(struct cifsFileInfo *cifs_file)
|
||||
}
|
||||
spin_unlock(&cifs_file_list_lock);
|
||||
|
||||
cancel_work_sync(&cifs_file->oplock_break);
|
||||
oplock_break_cancelled = cancel_work_sync(&cifs_file->oplock_break);
|
||||
|
||||
if (!tcon->need_reconnect && !cifs_file->invalidHandle) {
|
||||
struct TCP_Server_Info *server = tcon->ses->server;
|
||||
@ -409,6 +410,9 @@ void cifsFileInfo_put(struct cifsFileInfo *cifs_file)
|
||||
_free_xid(xid);
|
||||
}
|
||||
|
||||
if (oplock_break_cancelled)
|
||||
cifs_done_oplock_break(cifsi);
|
||||
|
||||
cifs_del_pending_open(&open);
|
||||
|
||||
/*
|
||||
|
@ -221,7 +221,7 @@ E_md4hash(const unsigned char *passwd, unsigned char *p16,
|
||||
}
|
||||
|
||||
rc = mdfour(p16, (unsigned char *) wpwd, len * sizeof(__le16));
|
||||
memset(wpwd, 0, 129 * sizeof(__le16));
|
||||
memzero_explicit(wpwd, sizeof(wpwd));
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user