}
 #ifdef CONFIG_CIFS_DEBUG2
        cFYI(1, ("revision %d num_auth %d First subauth 0x%x",
-               psid->revision, psid->num_auth, psid->sub_auth[0]));
+               psid->revision, psid->num_subauth, psid->sub_auth[0]));
 
        /* BB add length check to make sure that we do not have huge num auths
              and therefore go off the end */
-       cFYI(1, ("RID 0x%x", le32_to_cpu(psid->sub_auth[psid->num_auth])));
+       cFYI(1, ("RID 0x%x", le32_to_cpu(psid->sub_auth[psid->num_subauth])));
 #endif
        return 0;
 }
 
 
 struct cifs_sid {
        __u8 revision; /* revision level */
-       __u8 num_auth;
+       __u8 num_subauth;
        __u8 authority[6];
-       __u32 sub_auth[4];
-       __u32 rid;
+       __u32 sub_auth[0]; /* sub_auth[num_subauth] */
 } __attribute__((packed));
 
 struct cifs_acl {
 
 struct cifs_ace {
        __u8 revision; /* revision level */
-       __u8 num_auth;
+       __u8 num_subauth;
        __u8 authority[6];
-       __u32 sub_auth[4];
-       __u32 rid;
+       __u32 sub_auth[0];
 } __attribute__((packed));
 
 /* everyone */