sysctl: Error on bad sysctl tables
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 18 Oct 2007 10:05:54 +0000 (03:05 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 18 Oct 2007 21:37:23 +0000 (14:37 -0700)
commitfc6cd25b738c2369d7ed3a6ef2ca248b51fcd2d4
treebd3708eac72edf06097a8a2ed72c3a3fea0b0998
parentf429cd37a21b8efc825bdbb22db7f033564cbc98
sysctl: Error on bad sysctl tables

After going through the kernels sysctl tables several times it has become
clear that code review and testing is just not effective in prevent
problematic sysctl tables from being used in the stable kernel.  I certainly
can't seem to fix the problems as fast as they are introduced.

Therefore this patch adds sysctl_check_table which is called when a sysctl
table is registered and checks to see if we have a problematic sysctl table.

The biggest part of the code is the table of valid binary sysctl entries, but
since we have frozen our set of binary sysctls this table should not need to
change, and it makes it much easier to detect when someone unintentionally
adds a new binary sysctl value.

As best as I can determine all of the several hundred errors spewed on boot up
now are legitimate.

[bunk@kernel.org: kernel/sysctl_check.c must #include <linux/string.h>]
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Alexey Dobriyan <adobriyan@sw.ru>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/sysctl.h
kernel/Makefile
kernel/sysctl.c
kernel/sysctl_check.c [new file with mode: 0644]