summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix/pvfs_util.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-03-05 17:52:35 +1100
committerAndrew Tridgell <tridge@samba.org>2010-03-05 23:07:31 +1100
commitace6d75ae6f953b76fa9709857af4744020cd6fb (patch)
treef125e6a22e60284437b55eb915ab62ccbe979a7c /source4/ntvfs/posix/pvfs_util.c
parent034bcaf14d1bc651c8b51b489aebcfa392158f2c (diff)
downloadsamba-ace6d75ae6f953b76fa9709857af4744020cd6fb.tar.gz
samba-ace6d75ae6f953b76fa9709857af4744020cd6fb.tar.bz2
samba-ace6d75ae6f953b76fa9709857af4744020cd6fb.zip
s4-pvfs: use pvfs_sys_*() functions to wrap posix calls
This allows for root override, which fixes many problems with mismatches between NT ACL permissions and unix permissions. Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/ntvfs/posix/pvfs_util.c')
-rw-r--r--source4/ntvfs/posix/pvfs_util.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/source4/ntvfs/posix/pvfs_util.c b/source4/ntvfs/posix/pvfs_util.c
index b1b0a64789..63651c203a 100644
--- a/source4/ntvfs/posix/pvfs_util.c
+++ b/source4/ntvfs/posix/pvfs_util.c
@@ -102,13 +102,13 @@ NTSTATUS pvfs_copy_file(struct pvfs_state *pvfs,
return NT_STATUS_NO_MEMORY;
}
- fd1 = open(name1->full_name, O_RDONLY);
+ fd1 = pvfs_sys_open(pvfs, name1->full_name, O_RDONLY, 0);
if (fd1 == -1) {
talloc_free(buf);
return pvfs_map_errno(pvfs, errno);
}
- fd2 = open(name2->full_name, O_CREAT|O_EXCL|O_WRONLY, 0);
+ fd2 = pvfs_sys_open(pvfs, name2->full_name, O_CREAT|O_EXCL|O_WRONLY, 0);
if (fd2 == -1) {
close(fd1);
talloc_free(buf);
@@ -133,7 +133,7 @@ NTSTATUS pvfs_copy_file(struct pvfs_state *pvfs,
close(fd1);
close(fd2);
talloc_free(buf);
- unlink(name2->full_name);
+ pvfs_sys_unlink(pvfs, name2->full_name);
if (ret2 == -1) {
return pvfs_map_errno(pvfs, errno);
}
@@ -148,7 +148,7 @@ NTSTATUS pvfs_copy_file(struct pvfs_state *pvfs,
if (fchmod(fd2, mode) == -1) {
status = pvfs_map_errno(pvfs, errno);
close(fd2);
- unlink(name2->full_name);
+ pvfs_sys_unlink(pvfs, name2->full_name);
return status;
}
@@ -158,7 +158,7 @@ NTSTATUS pvfs_copy_file(struct pvfs_state *pvfs,
status = pvfs_dosattrib_save(pvfs, name2, fd2);
if (!NT_STATUS_IS_OK(status)) {
close(fd2);
- unlink(name2->full_name);
+ pvfs_sys_unlink(pvfs, name2->full_name);
return status;
}