Changeset 282 for branches/samba-3.2.x/source/smbd/posix_acls.c
- Timestamp:
- Jun 24, 2009, 10:34:52 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.2.x/source/smbd/posix_acls.c
r272 r282 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 … … 3628 3626 become_root(); 3629 3627 } 3630 ret = set_canon_ace_list(fsp, file_ace_list, False, sbuf.st_gid, &acl_set_support);3628 ret = set_canon_ace_list(fsp, file_ace_list, False, &sbuf, &acl_set_support); 3631 3629 if (set_acl_as_root) { 3632 3630 unbecome_root(); … … 3645 3643 become_root(); 3646 3644 } 3647 ret = set_canon_ace_list(fsp, dir_ace_list, True, sbuf.st_gid, &acl_set_support);3645 ret = set_canon_ace_list(fsp, dir_ace_list, True, &sbuf, &acl_set_support); 3648 3646 if (set_acl_as_root) { 3649 3647 unbecome_root(); … … 3670 3668 } 3671 3669 if (sret == -1) { 3672 if (acl_group_override(conn, sbuf.st_gid, fsp->fsp_name)) {3670 if (acl_group_override(conn, &sbuf, fsp->fsp_name)) { 3673 3671 DEBUG(5,("set_nt_acl: acl group control on and " 3674 3672 "current user in file %s primary group. Override delete_def_acl\n", … … 3730 3728 } 3731 3729 if(sret == -1) { 3732 if (acl_group_override(conn, sbuf.st_gid, fsp->fsp_name)) {3730 if (acl_group_override(conn, &sbuf, fsp->fsp_name)) { 3733 3731 DEBUG(5,("set_nt_acl: acl group control on and " 3734 3732 "current user in file %s primary group. Override chmod\n",
Note:
See TracChangeset
for help on using the changeset viewer.