Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 55994
b: refs/heads/master
c: 4fc03b9
h: refs/heads/master
v: v3
  • Loading branch information
Amy Griffis authored and Al Viro committed May 11, 2007
1 parent 9d341bf commit aa5fd96
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 36 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 510f4006e7a82b37b53c17bbe64ec20f3a59302b
refs/heads/master: 4fc03b9beb2314f3adb9e72b7935a80c577954d1
2 changes: 1 addition & 1 deletion trunk/fs/namei.c
Original file line number Diff line number Diff line change
Expand Up @@ -1719,7 +1719,7 @@ int open_namei(int dfd, const char *pathname, int flag,
* It already exists.
*/
mutex_unlock(&dir->d_inode->i_mutex);
audit_inode_update(path.dentry->d_inode);
audit_inode(pathname, path.dentry->d_inode);

error = -EEXIST;
if (flag & O_EXCL)
Expand Down
7 changes: 0 additions & 7 deletions trunk/include/linux/audit.h
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,6 @@ extern void audit_putname(const char *name);
extern void __audit_inode(const char *name, const struct inode *inode);
extern void __audit_inode_child(const char *dname, const struct inode *inode,
const struct inode *parent);
extern void __audit_inode_update(const struct inode *inode);
extern void __audit_ptrace(struct task_struct *t);

static inline int audit_dummy_context(void)
Expand All @@ -378,10 +377,6 @@ static inline void audit_inode_child(const char *dname,
if (unlikely(!audit_dummy_context()))
__audit_inode_child(dname, inode, parent);
}
static inline void audit_inode_update(const struct inode *inode) {
if (unlikely(!audit_dummy_context()))
__audit_inode_update(inode);
}

static inline void audit_ptrace(struct task_struct *t)
{
Expand Down Expand Up @@ -470,10 +465,8 @@ extern int audit_signals;
#define audit_putname(n) do { ; } while (0)
#define __audit_inode(n,i) do { ; } while (0)
#define __audit_inode_child(d,i,p) do { ; } while (0)
#define __audit_inode_update(i) do { ; } while (0)
#define audit_inode(n,i) do { ; } while (0)
#define audit_inode_child(d,i,p) do { ; } while (0)
#define audit_inode_update(i) do { ; } while (0)
#define auditsc_get_stamp(c,t,s) do { BUG(); } while (0)
#define audit_get_loginuid(c) ({ -1; })
#define audit_log_task_context(b) do { ; } while (0)
Expand Down
4 changes: 4 additions & 0 deletions trunk/ipc/mqueue.c
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,7 @@ asmlinkage long sys_mq_open(const char __user *u_name, int oflag, mode_t mode,

if (oflag & O_CREAT) {
if (dentry->d_inode) { /* entry already exists */
audit_inode(name, dentry->d_inode);
error = -EEXIST;
if (oflag & O_EXCL)
goto out;
Expand All @@ -693,6 +694,7 @@ asmlinkage long sys_mq_open(const char __user *u_name, int oflag, mode_t mode,
error = -ENOENT;
if (!dentry->d_inode)
goto out;
audit_inode(name, dentry->d_inode);
filp = do_open(dentry, oflag);
}

Expand Down Expand Up @@ -840,6 +842,7 @@ asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *u_msg_ptr,
if (unlikely(filp->f_op != &mqueue_file_operations))
goto out_fput;
info = MQUEUE_I(inode);
audit_inode(NULL, inode);

if (unlikely(!(filp->f_mode & FMODE_WRITE)))
goto out_fput;
Expand Down Expand Up @@ -923,6 +926,7 @@ asmlinkage ssize_t sys_mq_timedreceive(mqd_t mqdes, char __user *u_msg_ptr,
if (unlikely(filp->f_op != &mqueue_file_operations))
goto out_fput;
info = MQUEUE_I(inode);
audit_inode(NULL, inode);

if (unlikely(!(filp->f_mode & FMODE_READ)))
goto out_fput;
Expand Down
27 changes: 0 additions & 27 deletions trunk/kernel/auditsc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1475,33 +1475,6 @@ void __audit_inode_child(const char *dname, const struct inode *inode,
}
}

/**
* audit_inode_update - update inode info for last collected name
* @inode: inode being audited
*
* When open() is called on an existing object with the O_CREAT flag, the inode
* data audit initially collects is incorrect. This additional hook ensures
* audit has the inode data for the actual object to be opened.
*/
void __audit_inode_update(const struct inode *inode)
{
struct audit_context *context = current->audit_context;
int idx;

if (!context->in_syscall || !inode)
return;

if (context->name_count == 0) {
context->name_count++;
#if AUDIT_DEBUG
context->ino_count++;
#endif
}
idx = context->name_count - 1;

audit_copy_inode(&context->names[idx], inode);
}

/**
* auditsc_get_stamp - get local copies of audit_context values
* @ctx: audit_context for the task
Expand Down

0 comments on commit aa5fd96

Please sign in to comment.