/* POSIX ACL operations. */
- SMB_VFS_OP_CHMOD_ACL,
SMB_VFS_OP_FCHMOD_ACL,
SMB_VFS_OP_SYS_ACL_GET_FILE,
{ SMB_VFS_OP_GET_NT_ACL, "get_nt_acl" },
{ SMB_VFS_OP_FSET_NT_ACL, "fset_nt_acl" },
{ SMB_VFS_OP_AUDIT_FILE, "audit_file" },
- { SMB_VFS_OP_CHMOD_ACL, "chmod_acl" },
- { SMB_VFS_OP_FCHMOD_ACL, "fchmod_acl" },
{ SMB_VFS_OP_SYS_ACL_GET_FILE, "sys_acl_get_file" },
{ SMB_VFS_OP_SYS_ACL_GET_FD, "sys_acl_get_fd" },
{ SMB_VFS_OP_SYS_ACL_BLOB_GET_FILE, "sys_acl_blob_get_file" },
return tmp_do_log_ctx;
}
+static void do_log(vfs_op_type op, bool success, vfs_handle_struct *handle,
+ const char *format, ...) PRINTF_ATTRIBUTE(4, 5);
+
static void do_log(vfs_op_type op, bool success, vfs_handle_struct *handle,
const char *format, ...)
{
return result;
}
-static ssize_t smb_full_audit_read(vfs_handle_struct *handle, files_struct *fsp,
- void *data, size_t n)
-{
- ssize_t result;
-
- result = SMB_VFS_NEXT_READ(handle, fsp, data, n);
-
- do_log(SMB_VFS_OP_READ, (result >= 0), handle, "%s",
- fsp_str_do_log(fsp));
-
- return result;
-}
-
static ssize_t smb_full_audit_pread(vfs_handle_struct *handle, files_struct *fsp,
void *data, size_t n, off_t offset)
{
return state->ret;
}
-static ssize_t smb_full_audit_write(vfs_handle_struct *handle, files_struct *fsp,
- const void *data, size_t n)
-{
- ssize_t result;
-
- result = SMB_VFS_NEXT_WRITE(handle, fsp, data, n);
-
- do_log(SMB_VFS_OP_WRITE, (result >= 0), handle, "%s",
- fsp_str_do_log(fsp));
-
- return result;
-}
-
static ssize_t smb_full_audit_pwrite(vfs_handle_struct *handle, files_struct *fsp,
const void *data, size_t n,
off_t offset)
return result;
}
-static int smb_full_audit_fsync(vfs_handle_struct *handle, files_struct *fsp)
-{
- int result;
-
- result = SMB_VFS_NEXT_FSYNC(handle, fsp);
-
- do_log(SMB_VFS_OP_FSYNC, (result >= 0), handle, "%s",
- fsp_str_do_log(fsp));
-
- return result;
-}
-
struct smb_full_audit_fsync_state {
vfs_handle_struct *handle;
files_struct *fsp;
result = SMB_VFS_NEXT_GET_ALLOC_SIZE(handle, fsp, sbuf);
do_log(SMB_VFS_OP_GET_ALLOC_SIZE, (result != (uint64_t)-1), handle,
- "%llu", result);
+ "%llu", (unsigned long long)result);
return result;
}
do_log(SMB_VFS_OP_BRL_LOCK_WINDOWS, NT_STATUS_IS_OK(result), handle,
"%s:%llu-%llu. type=%d. blocking=%d",
fsp_str_do_log(brl_fsp(br_lck)),
- plock->start, plock->size, plock->lock_type, blocking_lock);
+ (unsigned long long)plock->start,
+ (unsigned long long)plock->size,
+ plock->lock_type,
+ blocking_lock);
return result;
}
do_log(SMB_VFS_OP_BRL_UNLOCK_WINDOWS, (result == 0), handle,
"%s:%llu-%llu:%d", fsp_str_do_log(brl_fsp(br_lck)),
- plock->start,
- plock->size, plock->lock_type);
+ (unsigned long long)plock->start,
+ (unsigned long long)plock->size,
+ plock->lock_type);
return result;
}
do_log(SMB_VFS_OP_BRL_CANCEL_WINDOWS, (result == 0), handle,
"%s:%llu-%llu:%d", fsp_str_do_log(brl_fsp(br_lck)),
- plock->start,
- plock->size, plock->lock_type);
+ (unsigned long long)plock->start,
+ (unsigned long long)plock->size,
+ plock->lock_type);
return result;
}
result = SMB_VFS_NEXT_STRICT_LOCK_CHECK(handle, fsp, plock);
do_log(SMB_VFS_OP_STRICT_LOCK_CHECK, result, handle,
- "%s:%llu-%llu:%d", fsp_str_do_log(fsp), plock->start,
- plock->size, plock->lock_type);
+ "%s:%llu-%llu:%d", fsp_str_do_log(fsp),
+ (unsigned long long)plock->start,
+ (unsigned long long)plock->size,
+ plock->lock_type);
return result;
}
return result;
}
-static int smb_full_audit_chmod_acl(vfs_handle_struct *handle,
- const struct smb_filename *smb_fname,
- mode_t mode)
-{
- int result;
-
- result = SMB_VFS_NEXT_CHMOD_ACL(handle, smb_fname, mode);
-
- do_log(SMB_VFS_OP_CHMOD_ACL, (result >= 0), handle,
- "%s|%o", smb_fname->base_name, mode);
-
- return result;
-}
-
-static int smb_full_audit_fchmod_acl(vfs_handle_struct *handle, files_struct *fsp,
- mode_t mode)
-{
- int result;
-
- result = SMB_VFS_NEXT_FCHMOD_ACL(handle, fsp, mode);
-
- do_log(SMB_VFS_OP_FCHMOD_ACL, (result >= 0), handle,
- "%s|%o", fsp_str_do_log(fsp), mode);
-
- return result;
-}
-
static SMB_ACL_T smb_full_audit_sys_acl_get_file(vfs_handle_struct *handle,
const struct smb_filename *smb_fname,
SMB_ACL_TYPE_T type,
.open_fn = smb_full_audit_open,
.create_file_fn = smb_full_audit_create_file,
.close_fn = smb_full_audit_close,
- .read_fn = smb_full_audit_read,
.pread_fn = smb_full_audit_pread,
.pread_send_fn = smb_full_audit_pread_send,
.pread_recv_fn = smb_full_audit_pread_recv,
- .write_fn = smb_full_audit_write,
.pwrite_fn = smb_full_audit_pwrite,
.pwrite_send_fn = smb_full_audit_pwrite_send,
.pwrite_recv_fn = smb_full_audit_pwrite_recv,
.sendfile_fn = smb_full_audit_sendfile,
.recvfile_fn = smb_full_audit_recvfile,
.rename_fn = smb_full_audit_rename,
- .fsync_fn = smb_full_audit_fsync,
.fsync_send_fn = smb_full_audit_fsync_send,
.fsync_recv_fn = smb_full_audit_fsync_recv,
.stat_fn = smb_full_audit_stat,
.get_nt_acl_fn = smb_full_audit_get_nt_acl,
.fset_nt_acl_fn = smb_full_audit_fset_nt_acl,
.audit_file_fn = smb_full_audit_audit_file,
- .chmod_acl_fn = smb_full_audit_chmod_acl,
- .fchmod_acl_fn = smb_full_audit_fchmod_acl,
.sys_acl_get_file_fn = smb_full_audit_sys_acl_get_file,
.sys_acl_get_fd_fn = smb_full_audit_sys_acl_get_fd,
.sys_acl_blob_get_file_fn = smb_full_audit_sys_acl_blob_get_file,