ChangeSet 1.2233, 2005/03/17 08:35:45-08:00, [EMAIL PROTECTED]
Merge
arch/mips/kernel/ptrace.c | 1 +
arch/um/kernel/ptrace.c | 13 +++++++++----
fs/namei.c | 19 ++++++++++++++-----
fs/proc/base.c | 1 +
include/linux/audit.h | 9 +++++----
include/linux/fs.h | 9 +--------
kernel/auditsc.c | 2 +-
7 files changed, 32 insertions(+), 22 deletions(-)
diff -Nru a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
--- a/arch/mips/kernel/ptrace.c 2005-03-17 09:08:08 -08:00
+++ b/arch/mips/kernel/ptrace.c 2005-03-17 09:08:08 -08:00
@@ -26,6 +26,7 @@
#include <linux/smp_lock.h>
#include <linux/user.h>
#include <linux/security.h>
+#include <linux/audit.h>
#include <asm/cpu.h>
#include <asm/fpu.h>
diff -Nru a/arch/um/kernel/ptrace.c b/arch/um/kernel/ptrace.c
--- a/arch/um/kernel/ptrace.c 2005-03-17 09:08:08 -08:00
+++ b/arch/um/kernel/ptrace.c 2005-03-17 09:08:08 -08:00
@@ -9,6 +9,7 @@
#include "linux/smp_lock.h"
#include "linux/security.h"
#include "linux/ptrace.h"
+#include "linux/audit.h"
#ifdef CONFIG_PROC_MM
#include "linux/proc_mm.h"
#endif
@@ -336,11 +337,15 @@
if (unlikely(current->audit_context)) {
if (!entryexit)
- audit_syscall_entry(current, regs->orig_eax,
- regs->ebx, regs->ecx,
- regs->edx, regs->esi);
+ audit_syscall_entry(current,
+ UPT_SYSCALL_NR(®s->regs),
+ UPT_SYSCALL_ARG1(®s->regs),
+ UPT_SYSCALL_ARG2(®s->regs),
+ UPT_SYSCALL_ARG3(®s->regs),
+ UPT_SYSCALL_ARG4(®s->regs));
else
- audit_syscall_exit(current, regs->eax);
+ audit_syscall_exit(current,
+ UPT_SYSCALL_RET(®s->regs));
}
/* Fake a debug trap */
diff -Nru a/fs/namei.c b/fs/namei.c
--- a/fs/namei.c 2005-03-17 09:08:08 -08:00
+++ b/fs/namei.c 2005-03-17 09:08:08 -08:00
@@ -148,11 +148,22 @@
result = ERR_PTR(retval);
}
}
- if (unlikely(current->audit_context) && !IS_ERR(result) && result)
- audit_getname(result);
+ audit_getname(result);
return result;
}
+#ifdef CONFIG_AUDITSYSCALL
+void putname(const char *name)
+{
+ if (unlikely(current->audit_context))
+ audit_putname(name);
+ else
+ __putname(name);
+}
+EXPORT_SYMBOL(putname);
+#endif
+
+
/**
* generic_permission - check for access rights on a Posix-like filesystem
* @inode: inode to check access rights for
@@ -1012,9 +1023,7 @@
retval = link_path_walk(name, nd);
if (unlikely(current->audit_context
&& nd && nd->dentry && nd->dentry->d_inode))
- audit_inode(name,
- nd->dentry->d_inode->i_ino,
- nd->dentry->d_inode->i_rdev);
+ audit_inode(name, nd->dentry->d_inode);
return retval;
}
diff -Nru a/fs/proc/base.c b/fs/proc/base.c
--- a/fs/proc/base.c 2005-03-17 09:08:08 -08:00
+++ b/fs/proc/base.c 2005-03-17 09:08:08 -08:00
@@ -34,6 +34,7 @@
#include <linux/ptrace.h>
#include <linux/seccomp.h>
#include <linux/cpuset.h>
+#include <linux/audit.h>
#include "internal.h"
/*
diff -Nru a/include/linux/audit.h b/include/linux/audit.h
--- a/include/linux/audit.h 2005-03-17 09:08:08 -08:00
+++ b/include/linux/audit.h 2005-03-17 09:08:08 -08:00
@@ -125,10 +125,9 @@
#ifdef __KERNEL__
-#ifdef CONFIG_AUDIT
struct audit_buffer;
struct audit_context;
-#endif
+struct inode;
#ifdef CONFIG_AUDITSYSCALL
/* These are defined in auditsc.c */
@@ -141,7 +140,7 @@
extern void audit_syscall_exit(struct task_struct *task, int return_code);
extern void audit_getname(const char *name);
extern void audit_putname(const char *name);
-extern void audit_inode(const char *name, unsigned long ino, dev_t rdev);
+extern void audit_inode(const char *name, const struct inode *inode);
/* Private API (for audit.c only) */
extern int audit_receive_filter(int type, int pid, int uid, int seq,
@@ -150,6 +149,7 @@
struct timespec *t, int *serial);
extern int audit_set_loginuid(struct audit_context *ctx, uid_t loginuid);
extern uid_t audit_get_loginuid(struct audit_context *ctx);
+extern int audit_ipc_perms(unsigned long qbytes, uid_t uid, gid_t gid, mode_t
mode);
#else
#define audit_alloc(t) ({ 0; })
#define audit_free(t) do { ; } while (0)
@@ -157,8 +157,9 @@
#define audit_syscall_exit(t,r) do { ; } while (0)
#define audit_getname(n) do { ; } while (0)
#define audit_putname(n) do { ; } while (0)
-#define audit_inode(n,i,d) do { ; } while (0)
+#define audit_inode(n,i) do { ; } while (0)
#define audit_get_loginuid(c) ({ -1; })
+#define audit_ipc_perms(q,u,g,m) ({ 0; })
#endif
#ifdef CONFIG_AUDIT
diff -Nru a/include/linux/fs.h b/include/linux/fs.h
--- a/include/linux/fs.h 2005-03-17 09:08:08 -08:00
+++ b/include/linux/fs.h 2005-03-17 09:08:08 -08:00
@@ -212,7 +212,6 @@
#include <linux/list.h>
#include <linux/radix-tree.h>
#include <linux/prio_tree.h>
-#include <linux/audit.h>
#include <linux/init.h>
#include <asm/atomic.h>
@@ -1272,13 +1271,7 @@
#ifndef CONFIG_AUDITSYSCALL
#define putname(name) __putname(name)
#else
-#define putname(name) \
- do { \
- if (unlikely(current->audit_context)) \
- audit_putname(name); \
- else \
- __putname(name); \
- } while (0)
+extern void putname(const char *name);
#endif
extern int register_blkdev(unsigned int, const char *);
diff -Nru a/kernel/auditsc.c b/kernel/auditsc.c
--- a/kernel/auditsc.c 2005-03-17 09:08:08 -08:00
+++ b/kernel/auditsc.c 2005-03-17 09:08:08 -08:00
@@ -380,7 +380,7 @@
case AUDIT_INODE:
if (ctx) {
for (j = 0; j < ctx->name_count; j++) {
- if (MINOR(ctx->names[j].ino)==value) {
+ if (ctx->names[j].ino == value) {
++result;
break;
}
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html