return result;
}
-
static int audit_unlink(vfs_handle_struct *handle,
const struct smb_filename *smb_fname)
{
return result;
}
+static int audit_unlinkat(vfs_handle_struct *handle,
+ struct files_struct *dirfsp,
+ const struct smb_filename *smb_fname,
+ int flags)
+{
+ int result;
+
+ result = SMB_VFS_NEXT_UNLINKAT(handle,
+ dirfsp,
+ smb_fname,
+ flags);
+
+ syslog(audit_syslog_priority(handle), "unlinkat %s %s%s\n",
+ smb_fname->base_name,
+ (result < 0) ? "failed: " : "",
+ (result < 0) ? strerror(errno) : "");
+
+ return result;
+}
+
static int audit_chmod(vfs_handle_struct *handle,
const struct smb_filename *smb_fname,
mode_t mode)
.close_fn = audit_close,
.renameat_fn = audit_renameat,
.unlink_fn = audit_unlink,
+ .unlinkat_fn = audit_unlinkat,
.chmod_fn = audit_chmod,
.fchmod_fn = audit_fchmod,
};