]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
nfsd41: add flag checking for create_session
authorMi Jinlong <mijinlong@cn.fujitsu.com>
Wed, 23 Mar 2011 09:57:07 +0000 (17:57 +0800)
committerJ. Bruce Fields <bfields@redhat.com>
Sat, 30 Apr 2011 00:47:53 +0000 (20:47 -0400)
Teach the NFS server to reject invalid create_session flags.

Also do some minor formatting adjustments.

Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4state.c
include/linux/nfs4.h

index fbde6f79922ed0ce13ee9b97074ffcfce9555508..6dbaa379c8634d0a9c9f270965d17bec1db99c56 100644 (file)
@@ -1515,6 +1515,9 @@ nfsd4_create_session(struct svc_rqst *rqstp,
        bool confirm_me = false;
        int status = 0;
 
+       if (cr_ses->flags & ~SESSION4_FLAG_MASK_A)
+               return nfserr_inval;
+
        nfs4_lock_state();
        unconf = find_unconfirmed_client(&cr_ses->clientid);
        conf = find_confirmed_client(&cr_ses->clientid);
index b528f6d4b860d394e2870a02022366a209abcec0..8937727e7039119214ba45bbe35e71fb4692981a 100644 (file)
@@ -570,9 +570,11 @@ struct nfs4_sessionid {
 };
 
 /* Create Session Flags */
-#define SESSION4_PERSIST        0x001
-#define SESSION4_BACK_CHAN      0x002
-#define SESSION4_RDMA           0x004
+#define SESSION4_PERSIST       0x001
+#define SESSION4_BACK_CHAN     0x002
+#define SESSION4_RDMA          0x004
+
+#define SESSION4_FLAG_MASK_A   0x007
 
 enum state_protect_how4 {
        SP4_NONE        = 0,