patch-2.4.0-test1 linux/fs/ncpfs/ioctl.c

Next file: linux/fs/nfs/flushd.c
Previous file: linux/fs/ncpfs/file.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre9/linux/fs/ncpfs/ioctl.c linux/fs/ncpfs/ioctl.c
@@ -250,21 +250,21 @@
 		{
 			return -EACCES;
 		}
-		if (server->sign_active)
-		{
-			return -EINVAL;
-		}
-		if (server->sign_wanted)
-		{
-			struct ncp_sign_init sign;
+		if (arg) {
+			if (server->sign_wanted)
+			{
+				struct ncp_sign_init sign;
 
-			if (copy_from_user(&sign, (struct ncp_sign_init *) arg,
-			      sizeof(sign))) return -EFAULT;
-			memcpy(server->sign_root,sign.sign_root,8);
-			memcpy(server->sign_last,sign.sign_last,16);
-			server->sign_active = 1;
+				if (copy_from_user(&sign, (struct ncp_sign_init *) arg,
+				      sizeof(sign))) return -EFAULT;
+				memcpy(server->sign_root,sign.sign_root,8);
+				memcpy(server->sign_last,sign.sign_last,16);
+				server->sign_active = 1;
+			}
+			/* ignore when signatures not wanted */
+		} else {
+			server->sign_active = 0;
 		}
-		/* ignore when signatures not wanted */
 		return 0;		
 		
         case NCP_IOC_SIGN_WANTED:

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)