diff options
author | JP Abgrall <jpa@google.com> | 2011-09-11 12:13:41 -0700 |
---|---|---|
committer | JP Abgrall <jpa@google.com> | 2011-09-11 12:47:27 -0700 |
commit | ffebb241e1feefa944283399fe361be78b43bdfe (patch) | |
tree | 651349caabb46dd1e1ac280a7776af96e1ee2190 | |
parent | 6b82151ce53f790833ea8cdf43abd0b0e0c3a1e3 (diff) | |
download | kernel_samsung_tuna-ffebb241e1feefa944283399fe361be78b43bdfe.zip kernel_samsung_tuna-ffebb241e1feefa944283399fe361be78b43bdfe.tar.gz kernel_samsung_tuna-ffebb241e1feefa944283399fe361be78b43bdfe.tar.bz2 |
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>
-rw-r--r-- | net/netfilter/xt_qtaguid.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/net/netfilter/xt_qtaguid.c b/net/netfilter/xt_qtaguid.c index dff2ff3..66eab3a 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); |