diff options
author | Steve French <sfrench@us.ibm.com> | 2007-09-25 12:17:24 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-09-25 12:17:24 -0400 |
commit | bcb020341a7d0fba6cd025f068d40f4ab5c36af8 (patch) | |
tree | 5ef6c01a6ade5fbe5e87940958be31a5e370de68 /fs/cifs/cifssmb.c | |
parent | 442aa310f3bc49cf4e059da790fbae62411d50db (diff) |
[CIFS] move cifs acl code to new file and fix build break
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifssmb.c')
-rw-r--r-- | fs/cifs/cifssmb.c | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index 46c2bb455124..cc05a26ab07a 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c | |||
@@ -3040,113 +3040,6 @@ GetExtAttrOut: | |||
3040 | 3040 | ||
3041 | #endif /* CONFIG_POSIX */ | 3041 | #endif /* CONFIG_POSIX */ |
3042 | 3042 | ||
3043 | |||
3044 | /* security id for everyone */ | ||
3045 | static const struct cifs_sid sid_everyone = | ||
3046 | {1, 1, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0}}; | ||
3047 | /* group users */ | ||
3048 | static const struct cifs_sid sid_user = | ||
3049 | {1, 2 , {0, 0, 0, 0, 0, 5}, {32, 545, 0, 0}}; | ||
3050 | |||
3051 | static void parse_sid(struct cifs_sid * psid, char * end_of_acl) | ||
3052 | { | ||
3053 | /* BB need to add parm so we can store the SID BB */ | ||
3054 | |||
3055 | /* validate that we do not go past end of acl */ | ||
3056 | if (end_of_acl < (char *)psid + sizeof(struct cifs_sid)) { | ||
3057 | cERROR(1, ("ACL to small to parse SID")); | ||
3058 | return; | ||
3059 | } | ||
3060 | #ifdef CONFIG_CIFS_DEBUG2 | ||
3061 | cFYI(1, ("revision %d num_auth %d First subauth 0x%x", | ||
3062 | psid->revision, psid->num_auth, psid->sub_auth[0])); | ||
3063 | |||
3064 | /* BB add length check to make sure that we do not have huge num auths | ||
3065 | and therefore go off the end */ | ||
3066 | cFYI(1, ("RID 0x%x", le32_to_cpu(psid->sub_auth[psid->num_auth]))); | ||
3067 | #endif | ||
3068 | return; | ||
3069 | } | ||
3070 | |||
3071 | /* Convert CIFS ACL to POSIX form */ | ||
3072 | static int parse_sec_desc(struct cifs_ntsd *pntsd, int acl_len) | ||
3073 | { | ||
3074 | int i; | ||
3075 | int num_aces = 0; | ||
3076 | int acl_size; | ||
3077 | struct cifs_sid *owner_sid_ptr, *group_sid_ptr; | ||
3078 | struct cifs_acl *dacl_ptr; /* no need for SACL ptr */ | ||
3079 | struct cifs_ntace **ppntace; | ||
3080 | struct cifs_ace **ppace; | ||
3081 | char *acl_base; | ||
3082 | char *end_of_acl = ((char *)pntsd) + acl_len; | ||
3083 | |||
3084 | owner_sid_ptr = (struct cifs_sid *)((char *)pntsd + | ||
3085 | cpu_to_le32(pntsd->osidoffset)); | ||
3086 | group_sid_ptr = (struct cifs_sid *)((char *)pntsd + | ||
3087 | cpu_to_le32(pntsd->gsidoffset)); | ||
3088 | dacl_ptr = (struct cifs_acl *)((char *)pntsd + | ||
3089 | cpu_to_le32(pntsd->dacloffset)); | ||
3090 | #ifdef CONFIG_CIFS_DEBUG2 | ||
3091 | cFYI(1,("revision %d type 0x%x ooffset 0x%x goffset 0x%x " | ||
3092 | "sacloffset 0x%x dacloffset 0x%x", pntsd->revision, pntsd->type, | ||
3093 | pntsd->osidoffset, pntsd->gsidoffset, pntsd->sacloffset, | ||
3094 | pntsd->dacloffset)); | ||
3095 | #endif | ||
3096 | parse_sid(owner_sid_ptr, end_of_acl); | ||
3097 | parse_sid(group_sid_ptr, end_of_acl); | ||
3098 | |||
3099 | /* cifscred->uid = owner_sid_ptr->rid; | ||
3100 | cifscred->gid = group_sid_ptr->rid; | ||
3101 | memcpy((void *)(&(cifscred->osid)), (void *)owner_sid_ptr, | ||
3102 | sizeof (struct cifs_sid)); | ||
3103 | memcpy((void *)(&(cifscred->gsid)), (void *)group_sid_ptr, | ||
3104 | sizeof (struct cifs_sid)); */ | ||
3105 | |||
3106 | num_aces = cpu_to_le32(dacl_ptr->num_aces); | ||
3107 | cFYI(1, ("num aces %d", num_aces)); | ||
3108 | if (num_aces > 0) { | ||
3109 | ppntace = kmalloc(num_aces * sizeof(struct cifs_ntace *), | ||
3110 | GFP_KERNEL); | ||
3111 | ppace = kmalloc(num_aces * sizeof(struct cifs_ace *), | ||
3112 | GFP_KERNEL); | ||
3113 | |||
3114 | /* cifscred->cecount = dacl_ptr->num_aces; | ||
3115 | cifscred->ntaces = kmalloc(num_aces * | ||
3116 | sizeof(struct cifs_ntace *), GFP_KERNEL); | ||
3117 | cifscred->aces = kmalloc(num_aces * | ||
3118 | sizeof(struct cifs_ace *), GFP_KERNEL);*/ | ||
3119 | |||
3120 | acl_base = (char *)dacl_ptr; | ||
3121 | acl_size = sizeof(struct cifs_acl); | ||
3122 | |||
3123 | for (i = 0; i < num_aces; ++i) { | ||
3124 | ppntace[i] = (struct cifs_ntace *) | ||
3125 | (acl_base + acl_size); | ||
3126 | ppace[i] = (struct cifs_ace *) | ||
3127 | ((char *)ppntace[i] + | ||
3128 | sizeof(struct cifs_ntace)); | ||
3129 | |||
3130 | /* memcpy((void *)(&(cifscred->ntaces[i])), | ||
3131 | (void *)ntace_ptrptr[i], | ||
3132 | sizeof(struct cifs_ntace)); | ||
3133 | memcpy((void *)(&(cifscred->aces[i])), | ||
3134 | (void *)ace_ptrptr[i], | ||
3135 | sizeof(struct cifs_ace)); */ | ||
3136 | |||
3137 | acl_base = (char *)ppntace[i]; | ||
3138 | acl_size = cpu_to_le32(ppntace[i]->size); | ||
3139 | #ifdef CONFIG_CIFS_DEBUG2 | ||
3140 | cFYI(1, ("ACE revision:%d", ppace[i]->revision)); | ||
3141 | } | ||
3142 | #endif | ||
3143 | kfree(ppace); | ||
3144 | kfree(ppntace); | ||
3145 | } | ||
3146 | |||
3147 | return (0); | ||
3148 | } | ||
3149 | |||
3150 | /* Get Security Descriptor (by handle) from remote server for a file or dir */ | 3043 | /* Get Security Descriptor (by handle) from remote server for a file or dir */ |
3151 | int | 3044 | int |
3152 | CIFSSMBGetCIFSACL(const int xid, struct cifsTconInfo *tcon, __u16 fid, | 3045 | CIFSSMBGetCIFSACL(const int xid, struct cifsTconInfo *tcon, __u16 fid, |