Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16ae527b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'audit.b51' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
  [PATCH] list_for_each_rcu must die: audit
  [patch 1/1] audit_send_reply(): fix error-path memory leak
  [PATCH] open sessionid permissions
parents e23a5f66 6793a051
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2441,7 +2441,7 @@ static const struct pid_entry tgid_base_stuff[] = {
	REG("oom_adj",    S_IRUGO|S_IWUSR, oom_adjust),
#ifdef CONFIG_AUDITSYSCALL
	REG("loginuid",   S_IWUSR|S_IRUGO, loginuid),
	REG("sessionid",  S_IRUSR, sessionid),
	REG("sessionid",  S_IRUGO, sessionid),
#endif
#ifdef CONFIG_FAULT_INJECTION
	REG("make-it-fail", S_IRUGO|S_IWUSR, fault_inject),
+6 −5
Original line number Diff line number Diff line
@@ -572,16 +572,17 @@ void audit_send_reply(int pid, int seq, int type, int done, int multi,

	skb = audit_make_reply(pid, seq, type, done, multi, payload, size);
	if (!skb)
		return;
		goto out;

	reply->pid = pid;
	reply->skb = skb;

	tsk = kthread_run(audit_send_reply_thread, reply, "audit_send_reply");
	if (IS_ERR(tsk)) {
		kfree(reply);
	if (!IS_ERR(tsk))
		return;
	kfree_skb(skb);
	}
out:
	kfree(reply);
}

/*
+2 −3
Original line number Diff line number Diff line
@@ -172,10 +172,9 @@ static void insert_hash(struct audit_chunk *chunk)
struct audit_chunk *audit_tree_lookup(const struct inode *inode)
{
	struct list_head *list = chunk_hash(inode);
	struct list_head *pos;
	struct audit_chunk *p;

	list_for_each_rcu(pos, list) {
		struct audit_chunk *p = container_of(pos, struct audit_chunk, hash);
	list_for_each_entry_rcu(p, list, hash) {
		if (p->watch.inode == inode) {
			get_inotify_watch(&p->watch);
			return p;