Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit abb63d6c authored by Steve French's avatar Steve French
Browse files

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



Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent d628ddb6
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -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
leak that causes cifsd not to stop and rmmod to fail to cleanup
cifs_request_buffers pool. Fix problem with POSIX Open/Mkdir on
cifs_request_buffers pool. Fix problem with POSIX Open/Mkdir on
bigendian architectures. Fix possible memory corruption when
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
Version 1.50
------------
------------
+3 −1
Original line number Original line Diff line number Diff line
@@ -663,10 +663,12 @@ signing_check:
		/* MUST_SIGN already includes the MAY_SIGN FLAG
		/* MUST_SIGN already includes the MAY_SIGN FLAG
		   so if this is zero it means that signing is disabled */
		   so if this is zero it means that signing is disabled */
		cFYI(1, ("Signing disabled"));
		cFYI(1, ("Signing disabled"));
		if (server->secMode & SECMODE_SIGN_REQUIRED)
		if (server->secMode & SECMODE_SIGN_REQUIRED) {
			cERROR(1, ("Server requires "
			cERROR(1, ("Server requires "
				   "packet signing to be enabled in "
				   "packet signing to be enabled in "
				   "/proc/fs/cifs/SecurityFlags."));
				   "/proc/fs/cifs/SecurityFlags."));
			rc = -EOPNOTSUPP;
		}
		server->secMode &=
		server->secMode &=
			~(SECMODE_SIGN_ENABLED | SECMODE_SIGN_REQUIRED);
			~(SECMODE_SIGN_ENABLED | SECMODE_SIGN_REQUIRED);
	} else if ((secFlags & CIFSSEC_MUST_SIGN) == CIFSSEC_MUST_SIGN) {
	} else if ((secFlags & CIFSSEC_MUST_SIGN) == CIFSSEC_MUST_SIGN) {