Changeset 285 for branches/samba-3.3.x/source/smbd/posix_acls.c
- Timestamp:
- Jun 24, 2009, 2:54:02 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.3.x/source/smbd/posix_acls.c
r274 r285 2385 2385 2386 2386 static bool acl_group_override(connection_struct *conn, 2387 gid_t prim_gid,2387 SMB_STRUCT_STAT *psbuf, 2388 2388 const char *fname) 2389 2389 { 2390 SMB_STRUCT_STAT sbuf;2391 2392 2390 if ((errno != EPERM) && (errno != EACCES)) { 2393 2391 return false; … … 2396 2394 /* file primary group == user primary or supplementary group */ 2397 2395 if (lp_acl_group_control(SNUM(conn)) && 2398 current_user_in_group(p rim_gid)) {2396 current_user_in_group(psbuf->st_gid)) { 2399 2397 return true; 2400 2398 } … … 2402 2400 /* user has writeable permission */ 2403 2401 if (lp_dos_filemode(SNUM(conn)) && 2404 can_write_to_file(conn, fname, &sbuf)) {2402 can_write_to_file(conn, fname, psbuf)) { 2405 2403 return true; 2406 2404 } … … 2413 2411 ****************************************************************************/ 2414 2412 2415 static bool set_canon_ace_list(files_struct *fsp, canon_ace *the_ace, bool default_ace, gid_t prim_gid, bool *pacl_set_support)2413 static bool set_canon_ace_list(files_struct *fsp, canon_ace *the_ace, bool default_ace, SMB_STRUCT_STAT *psbuf, bool *pacl_set_support) 2416 2414 { 2417 2415 connection_struct *conn = fsp->conn; … … 2592 2590 } 2593 2591 2594 if (acl_group_override(conn, p rim_gid, fsp->fsp_name)) {2592 if (acl_group_override(conn, psbuf, fsp->fsp_name)) { 2595 2593 int sret; 2596 2594 … … 2623 2621 } 2624 2622 2625 if (acl_group_override(conn, p rim_gid, fsp->fsp_name)) {2623 if (acl_group_override(conn, psbuf, fsp->fsp_name)) { 2626 2624 int sret; 2627 2625 … … 3619 3617 become_root(); 3620 3618 } 3621 ret = set_canon_ace_list(fsp, file_ace_list, False, sbuf.st_gid, &acl_set_support);3619 ret = set_canon_ace_list(fsp, file_ace_list, False, &sbuf, &acl_set_support); 3622 3620 if (set_acl_as_root) { 3623 3621 unbecome_root(); … … 3636 3634 become_root(); 3637 3635 } 3638 ret = set_canon_ace_list(fsp, dir_ace_list, True, sbuf.st_gid, &acl_set_support);3636 ret = set_canon_ace_list(fsp, dir_ace_list, True, &sbuf, &acl_set_support); 3639 3637 if (set_acl_as_root) { 3640 3638 unbecome_root(); … … 3661 3659 } 3662 3660 if (sret == -1) { 3663 if (acl_group_override(conn, sbuf.st_gid, fsp->fsp_name)) {3661 if (acl_group_override(conn, &sbuf, fsp->fsp_name)) { 3664 3662 DEBUG(5,("set_nt_acl: acl group control on and " 3665 3663 "current user in file %s primary group. Override delete_def_acl\n", … … 3721 3719 } 3722 3720 if(sret == -1) { 3723 if (acl_group_override(conn, sbuf.st_gid, fsp->fsp_name)) {3721 if (acl_group_override(conn, &sbuf, fsp->fsp_name)) { 3724 3722 DEBUG(5,("set_nt_acl: acl group control on and " 3725 3723 "current user in file %s primary group. Override chmod\n",
Note:
See TracChangeset
for help on using the changeset viewer.