Ignore:
Timestamp:
Jul 11, 2008, 1:13:42 AM (17 years ago)
Author:
Paul Smedley
Message:

Update branch to 3.0.31 release

File:
1 edited

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",
Note: See TracChangeset for help on using the changeset viewer.