Эх сурвалжийг харах

[CIFS] Return better error when server requires signing but client forbids

Signed-off-by: Steve French <sfrench@us.ibm.com>
Steve French 17 жил өмнө
parent
commit
abb63d6c3d
2 өөрчлөгдсөн 5 нэмэгдсэн , 2 устгасан
  1. 2 1
      fs/cifs/CHANGES
  2. 3 1
      fs/cifs/cifssmb.c

+ 2 - 1
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
 ------------

+ 3 - 1
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) {