From: ebiederm@xmission.com (Eric W. Biederman)
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, devel@openvz.org,
Alexey Dobriyan <adobriyan@sw.ru>
Subject: [PATCH 01/10] sysctl: Update sysctl_check_table
Date: Thu, 09 Aug 2007 18:49:46 -0600 [thread overview]
Message-ID: <m1d4xw9psl.fsf_-_@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <m1hcn8a2rq.fsf_-_@ebiederm.dsl.xmission.com> (Eric W. Biederman's message of "Thu, 09 Aug 2007 14:09:29 -0600")
Well it turns out after I dug into the problems a
little more I was returning a few false positives
so this patch updates my logic to remove them.
- Don't complain about 0 ctl_names in sysctl_check_binary_path
It is valid for someone to remove the sysctl binary interface
and still keep the same sysctl proc interface.
- Count ctl_names and procnames as matching if they both don't
exist.
- Only warn about missing min&max when the generic functions care.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
kernel/sysctl_check.c | 30 ++++++++++++++++--------------
1 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c
index 389c4ba..930a514 100644
--- a/kernel/sysctl_check.c
+++ b/kernel/sysctl_check.c
@@ -1420,12 +1420,14 @@ static int sysctl_check_dir(struct ctl_table *table)
ref = sysctl_check_lookup(table);
if (ref) {
int match = 0;
- if (table->procname && ref->procname &&
- (strcmp(table->procname, ref->procname) == 0))
+ if ((!table->procname && !ref->procname) ||
+ (table->procname && ref->procname &&
+ (strcmp(table->procname, ref->procname) == 0)))
match++;
- if (table->ctl_name && ref->ctl_name &&
- (table->ctl_name == ref->ctl_name))
+ if ((!table->ctl_name && !ref->ctl_name) ||
+ (table->ctl_name && ref->ctl_name &&
+ (table->ctl_name == ref->ctl_name)))
match++;
if (match != 2) {
@@ -1462,8 +1464,8 @@ static void sysctl_check_bin_path(struct ctl_table *table, const char **fail)
(strcmp(table->procname, ref->procname) != 0)))
set_fail(fail, table, "procname does not match binary path procname");
- if (ref->ctl_name &&
- (!table->ctl_name || table->ctl_name != ref->ctl_name))
+ if (ref->ctl_name && table->ctl_name &&
+ (table->ctl_name != ref->ctl_name))
set_fail(fail, table, "ctl_name does not match binary path ctl_name");
}
}
@@ -1499,7 +1501,7 @@ int sysctl_check_table(struct ctl_table *table)
if (table->extra2)
set_fail(&fail, table, "Directory with extra2");
if (sysctl_check_dir(table))
- set_fail(&fail, table, "Inconsistent directory");
+ set_fail(&fail, table, "Inconsistent directory names");
} else {
if ((table->strategy == sysctl_data) ||
(table->strategy == sysctl_string) ||
@@ -1520,14 +1522,14 @@ int sysctl_check_table(struct ctl_table *table)
if (!table->maxlen)
set_fail(&fail, table, "No maxlen");
}
- if ((table->strategy == sysctl_intvec) ||
- (table->proc_handler == proc_dointvec_minmax) ||
- (table->proc_handler == proc_doulongvec_minmax) ||
+ if ((table->proc_handler == proc_doulongvec_minmax) ||
(table->proc_handler == proc_doulongvec_ms_jiffies_minmax)) {
- if (!table->extra1)
- set_fail(&fail, table, "No min");
- if (!table->extra2)
- set_fail(&fail, table, "No max");
+ if (table->maxlen > sizeof (unsigned long)) {
+ if (!table->extra1)
+ set_fail(&fail, table, "No min");
+ if (!table->extra2)
+ set_fail(&fail, table, "No max");
+ }
}
if (table->ctl_name && !table->strategy)
set_fail(&fail, table, "Missing strategy");
--
1.5.1.1.181.g2de0
next prev parent reply other threads:[~2007-08-10 0:50 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-26 16:45 [PATCH] Remove CTL_UNNUMBERED Alexey Dobriyan
2007-07-26 17:24 ` Eric W. Biederman
2007-07-27 14:52 ` Alexey Dobriyan
2007-08-06 12:45 ` [PATCH 2/2] sysctl: remove CTL_UNNUMBERED Alexey Dobriyan
2007-08-09 19:44 ` Eric W. Biederman
2007-08-09 19:50 ` [PATCH 1/3] sysctl core: Stop using the unnecessary ctl_table typedef Eric W. Biederman
2007-08-09 19:52 ` [PATCH 2/3] sysctl: Factor out sysctl_data Eric W. Biederman
2007-08-09 20:09 ` [PATCH 3/3] sysctl: Error on bad sysctl tables Eric W. Biederman
2007-08-10 0:49 ` Eric W. Biederman [this message]
2007-08-10 0:51 ` [PATCH 02/10] sysct mqueue: Remove the binary sysctl numbers Eric W. Biederman
2007-08-10 0:53 ` [PATCH 03/10] sysctl: Remove binary sysctl support where it clearly doesn't work Eric W. Biederman
2007-08-10 0:56 ` [PATCH 04/10] sysctl: Fix neighbour table sysctls Eric W. Biederman
2007-08-10 0:57 ` [PATCH 05/10] sysctl: ipv6 route flushing (kill binary path) Eric W. Biederman
2007-08-10 0:58 ` [PATCH 06/10] sysctl: Remove broken sunrpc debug binary sysctls Eric W. Biederman
2007-08-10 0:59 ` [PATCH 07/10] sysctl: x86_64 remove unnecessary binary paths Eric W. Biederman
2007-08-10 1:01 ` [PATCH 08/10] sysctl: Remove broken cdrom binary sysctls Eric W. Biederman
2007-08-10 1:02 ` [PATCH 09/10] sysctl: ipv4 remove binary sysctl paths where they are broken Eric W. Biederman
2007-08-10 1:03 ` [PATCH 10/10] sysctl: Remove the binary interface for aio-nr, aio-max-nr, acpi_video_flags Eric W. Biederman
2007-08-10 13:33 ` [PATCH 08/10] sysctl: Remove broken cdrom binary sysctls Alan Cox
2007-08-10 15:55 ` Eric W. Biederman
2007-08-10 17:16 ` Alan Cox
2007-08-10 18:30 ` Eric W. Biederman
2007-08-10 1:04 ` [PATCH 06/10] sysctl: Remove broken sunrpc debug " Eric W. Biederman
2007-08-10 1:47 ` [PATCH 04/10] sysctl: Fix neighbour table sysctls YOSHIFUJI Hideaki / 吉藤英明
2007-08-10 1:49 ` David Miller
2007-08-10 2:14 ` YOSHIFUJI Hideaki / 吉藤英明
2007-08-10 2:23 ` Eric W. Biederman
2007-08-10 2:29 ` YOSHIFUJI Hideaki / 吉藤英明
2007-08-10 2:35 ` Eric W. Biederman
2007-08-10 1:55 ` Andrew Morton
2007-08-10 2:12 ` Eric W. Biederman
2007-08-10 2:22 ` YOSHIFUJI Hideaki / 吉藤英明
2007-08-10 2:01 ` [PATCH 3/3] sysctl: Error on bad sysctl tables YOSHIFUJI Hideaki / 吉藤英明
2007-08-10 2:15 ` Eric W. Biederman
2007-08-10 2:18 ` Eric W. Biederman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1d4xw9psl.fsf_-_@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=adobriyan@sw.ru \
--cc=akpm@linux-foundation.org \
--cc=devel@openvz.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®