aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMichal Schmidt <mschmidt@redhat.com>2014-06-02 18:25:02 +0200
committerBen Hutchings <ben@decadent.org.uk>2014-07-11 13:33:57 +0100
commit7343f010459a76c02ab4868a7301ae998f451a37 (patch)
treecf9314fd24cfac084ecc4bbe027b3b914289f919 /lib
parentf50bf61a3282988b2fe46e8cb88c9b8698a2d8d2 (diff)
downloadkernel_samsung_smdk4412-7343f010459a76c02ab4868a7301ae998f451a37.zip
kernel_samsung_smdk4412-7343f010459a76c02ab4868a7301ae998f451a37.tar.gz
kernel_samsung_smdk4412-7343f010459a76c02ab4868a7301ae998f451a37.tar.bz2
netlink: rate-limit leftover bytes warning and print process name
[ Upstream commit bfc5184b69cf9eeb286137640351c650c27f118a ] Any process is able to send netlink messages with leftover bytes. Make the warning rate-limited to prevent too much log spam. The warning is supposed to help find userspace bugs, so print the triggering command name to implicate the buggy program. [v2: Use pr_warn_ratelimited instead of printk_ratelimited.] Signed-off-by: Michal Schmidt <mschmidt@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net> [bwh: Add #include of <linux/sched.h> for definition of struct task_struct, as in 3.2 it doesn't get included indirectly on all architectures. Thanks to Guenter Roeck for debugging this.] Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'lib')
-rw-r--r--lib/nlattr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/nlattr.c b/lib/nlattr.c
index 190ae10..be25e35 100644
--- a/lib/nlattr.c
+++ b/lib/nlattr.c
@@ -12,6 +12,8 @@
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/string.h>
+#include <linux/ratelimit.h>
+#include <linux/sched.h>
#include <linux/types.h>
#include <net/netlink.h>
@@ -197,8 +199,8 @@ int nla_parse(struct nlattr **tb, int maxtype, const struct nlattr *head,
}
if (unlikely(rem > 0))
- printk(KERN_WARNING "netlink: %d bytes leftover after parsing "
- "attributes.\n", rem);
+ pr_warn_ratelimited("netlink: %d bytes leftover after parsing attributes in process `%s'.\n",
+ rem, current->comm);
err = 0;
errout: