diff options
author | Steve French <sfrench@us.ibm.com> | 2007-10-18 06:58:40 +0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-10-18 06:58:40 +0400 |
commit | abb63d6c3d3d0e4d93b63589135962091154be9b (patch) | |
tree | b0b22474c4bbaa5f95f4ad1f5c4ee2178a74fc9a | |
parent | d628ddb62d3050e8e474aa3566bc6bafbe4b9c26 (diff) | |
download | linux-abb63d6c3d3d0e4d93b63589135962091154be9b.tar.xz |
[CIFS] Return better error when server requires signing but client forbids
Signed-off-by: Steve French <sfrench@us.ibm.com>
-rw-r--r-- | fs/cifs/CHANGES | 3 | ||||
-rw-r--r-- | fs/cifs/cifssmb.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES index 2459ef0a1396..3d419163c3d3 100644 --- a/fs/cifs/CHANGES +++ b/fs/cifs/CHANGES @@ -11,7 +11,8 @@ connect fails (e.g. due to signing negotiation failure) fix leak that causes cifsd not to stop and rmmod to fail to cleanup cifs_request_buffers pool. Fix problem with POSIX Open/Mkdir on bigendian architectures. Fix possible memory corruption when -EAGAIN returned on kern_recvmsg. +EAGAIN returned on kern_recvmsg. Return better error if server +requires packet signing but client has disabled it. Version 1.50 ------------ diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index d22af63e8f1f..2b2d4fec3656 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c @@ -663,10 +663,12 @@ signing_check: /* MUST_SIGN already includes the MAY_SIGN FLAG so if this is zero it means that signing is disabled */ cFYI(1, ("Signing disabled")); - if (server->secMode & SECMODE_SIGN_REQUIRED) + if (server->secMode & SECMODE_SIGN_REQUIRED) { cERROR(1, ("Server requires " "packet signing to be enabled in " "/proc/fs/cifs/SecurityFlags.")); + rc = -EOPNOTSUPP; + } server->secMode &= ~(SECMODE_SIGN_ENABLED | SECMODE_SIGN_REQUIRED); } else if ((secFlags & CIFSSEC_MUST_SIGN) == CIFSSEC_MUST_SIGN) { |