Skip to content

Commit

Permalink
[PATCH] name_count array overrun
Browse files Browse the repository at this point in the history
Hi,

This patch removes the rdev logging from the previous patch

The below patch closes an unbounded use of name_count. This can lead to oopses
in some new file systems.

Signed-off-by: Steve Grubb <sgrubb@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Steve Grubb authored and Al Viro committed Oct 4, 2006
1 parent 419c58f commit ac9910c
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions kernel/auditsc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1357,7 +1357,13 @@ void __audit_inode_child(const char *dname, const struct inode *inode,
}

update_context:
idx = context->name_count++;
idx = context->name_count;
if (context->name_count == AUDIT_NAMES) {
printk(KERN_DEBUG "name_count maxed and losing %s\n",
found_name ?: "(null)");
return;
}
context->name_count++;
#if AUDIT_DEBUG
context->ino_count++;
#endif
Expand All @@ -1375,7 +1381,16 @@ void __audit_inode_child(const char *dname, const struct inode *inode,
/* A parent was not found in audit_names, so copy the inode data for the
* provided parent. */
if (!found_name) {
idx = context->name_count++;
idx = context->name_count;
if (context->name_count == AUDIT_NAMES) {
printk(KERN_DEBUG
"name_count maxed and losing parent inode data: dev=%02x:%02x, inode=%lu",
MAJOR(parent->i_sb->s_dev),
MINOR(parent->i_sb->s_dev),
parent->i_ino);
return;
}
context->name_count++;
#if AUDIT_DEBUG
context->ino_count++;
#endif
Expand Down

0 comments on commit ac9910c

Please sign in to comment.