Show
Ignore:
Timestamp:
07/11/08 01:13:42 (5 months ago)
Author:
psmedley
Message:

Update branch to 3.0.31 release

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/samba-3.0/source/smbd/posix_acls.c

    r124 r140  
    22902290 
    22912291/**************************************************************************** 
    2292  Should we override a deny ?  Check deprecated 'acl group control' 
    2293  and 'dos filemode' 
    2294 ****************************************************************************/ 
    2295  
    2296 static BOOL acl_group_override(connection_struct *conn, gid_t prim_gid) 
    2297 { 
    2298         if ( (errno == EACCES || errno == EPERM)  
    2299                 && (lp_acl_group_control(SNUM(conn)) || lp_dos_filemode(SNUM(conn))) 
    2300                 && current_user_in_group(prim_gid))  
    2301         { 
     2292 Should we override a deny ?  Check 'acl group control' and 'dos filemode' 
     2293****************************************************************************/ 
     2294 
     2295static BOOL acl_group_override(connection_struct *conn, gid_t prim_gid, const char *fname) 
     2296{ 
     2297        SMB_STRUCT_STAT sbuf; 
     2298 
     2299        if ((errno != EPERM) && (errno != EACCES)) { 
     2300                return False; 
     2301        } 
     2302 
     2303        /* file primary group == user primary or supplementary group */ 
     2304        if (lp_acl_group_control(SNUM(conn)) && current_user_in_group(prim_gid)) { 
    23022305                return True; 
    2303         }  
     2306        } 
     2307 
     2308        /* user has writeable permission */ 
     2309        if (lp_dos_filemode(SNUM(conn)) && can_write_to_file(conn, fname, &sbuf)) { 
     2310                return True; 
     2311        } 
    23042312 
    23052313        return False; 
     
    24892497                        } 
    24902498 
    2491                         if (acl_group_override(conn, prim_gid)) { 
     2499                        if (acl_group_override(conn, prim_gid, fsp->fsp_name)) { 
    24922500                                int sret; 
    24932501 
     
    25202528                        } 
    25212529 
    2522                         if (acl_group_override(conn, prim_gid)) { 
     2530                        if (acl_group_override(conn, prim_gid, fsp->fsp_name)) { 
    25232531                                int sret; 
    25242532 
     
    34783486                                                int sret = -1; 
    34793487 
    3480                                                 if (acl_group_override(conn, sbuf.st_gid)) { 
     3488                                                if (acl_group_override(conn, sbuf.st_gid, fsp->fsp_name)) { 
    34813489                                                        DEBUG(5,("set_nt_acl: acl group control on and " 
    34823490                                                                "current user in file %s primary group. Override delete_def_acl\n", 
     
    35253533                                        if(SMB_VFS_CHMOD(conn,fsp->fsp_name, posix_perms) == -1) { 
    35263534                                                int sret = -1; 
    3527                                                 if (acl_group_override(conn, sbuf.st_gid)) { 
     3535                                                if (acl_group_override(conn, sbuf.st_gid, fsp->fsp_name)) { 
    35283536                                                        DEBUG(5,("set_nt_acl: acl group control on and " 
    35293537                                                                "current user in file %s primary group. Override chmod\n",