netlink: rate-limit leftover bytes warning and print process name
authorMichal Schmidt <mschmidt@redhat.com>
Mon, 2 Jun 2014 16:25:02 +0000 (18:25 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Jun 2014 18:16:11 +0000 (11:16 -0700)
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>
lib/nlattr.c

index fc6754720ced66f80343a7331044b89f42521a42..10ad042d01be3a43b24500525127c1bbba7a7724 100644 (file)
@@ -201,8 +201,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: