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(&regs->regs),
+                                           UPT_SYSCALL_ARG1(&regs->regs),
+                                           UPT_SYSCALL_ARG2(&regs->regs),
+                                           UPT_SYSCALL_ARG3(&regs->regs),
+                                           UPT_SYSCALL_ARG4(&regs->regs));
                else
-                       audit_syscall_exit(current, regs->eax);
+                       audit_syscall_exit(current, 
+                                          UPT_SYSCALL_RET(&regs->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
  • Merge Linux Kernel Mailing List
    • Merge Linux Kernel Mailing List
    • merge Linux Kernel Mailing List

Reply via email to