summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorJP Abgrall <jpa@google.com>2011-09-11 12:13:41 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:39:04 -0800
commit4aea0ba0dcf7b6386b078c2ba992f5bfb74ab20b (patch)
tree2bec9dbee7231899610fbaa07c17f352e3cb14af /net
parentec2e6c72e4557774ee6913f5c4bb560236f56015 (diff)
netfilter: xt_qtaguid: warn only once for missing proc qtaguid data
When a process doesn't have /dev/xt_qtaguid open, only warn once instead of for every ctrl access. Change-Id: I98a462a8731254ddc3bf6d2fefeef9823659b1f0 Signed-off-by: JP Abgrall <jpa@google.com>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/xt_qtaguid.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/net/netfilter/xt_qtaguid.c b/net/netfilter/xt_qtaguid.c
index dff2ff3fd7cc..66eab3a9c4a4 100644
--- a/net/netfilter/xt_qtaguid.c
+++ b/net/netfilter/xt_qtaguid.c
@@ -1947,8 +1947,15 @@ static int ctrl_cmd_tag(const char *input)
spin_lock_bh(&uid_tag_data_tree_lock);
pqd_entry = proc_qtu_data_tree_search(
&proc_qtu_data_tree, current->tgid);
- /* TODO: remove if() test, do BUG_ON() */
- WARN_ON(IS_ERR_OR_NULL(pqd_entry));
+ /*
+ * TODO: remove if, and start failing.
+ * At first, we want to catch user-space code that is not
+ * opening the /dev/xt_qtaguid.
+ */
+ WARN_ONCE(IS_ERR_OR_NULL(pqd_entry),
+ "qtaguid: User space forgot to open /dev/xt_qtaguid? "
+ "pid=%u tgid=%u uid=%u\n",
+ current->pid, current->tgid, current_fsuid());
if (!IS_ERR_OR_NULL(pqd_entry)) {
list_add(&sock_tag_entry->list,
&pqd_entry->sock_tag_list);
@@ -2027,8 +2034,15 @@ static int ctrl_cmd_untag(const char *input)
spin_lock_bh(&uid_tag_data_tree_lock);
pqd_entry = proc_qtu_data_tree_search(
&proc_qtu_data_tree, current->tgid);
- /* TODO: remove if() test, do BUG_ON() */
- WARN_ON(IS_ERR_OR_NULL(pqd_entry));
+ /*
+ * TODO: remove if, and start failing.
+ * At first, we want to catch user-space code that is not
+ * opening the /dev/xt_qtaguid.
+ */
+ WARN_ONCE(IS_ERR_OR_NULL(pqd_entry),
+ "qtaguid: User space forgot to open /dev/xt_qtaguid? "
+ "pid=%u tgid=%u uid=%u\n",
+ current->pid, current->tgid, current_fsuid());
if (!IS_ERR_OR_NULL(pqd_entry))
list_del(&sock_tag_entry->list);
spin_unlock_bh(&uid_tag_data_tree_lock);