X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fnlattr.c;h=be25e355a5add38adacae6939f6352a8692c91fa;hb=2fba92d3c9114ecf6fd255fb437769e7b793b5f1;hp=a8408b6cacdf7ff8e73fcd3bf7db8a850afb56a4;hpb=fb38f9b8fe98a9c1f6b1e57d1b08b1102b293929;p=pandora-kernel.git diff --git a/lib/nlattr.c b/lib/nlattr.c index a8408b6cacdf..be25e355a5ad 100644 --- a/lib/nlattr.c +++ b/lib/nlattr.c @@ -12,6 +12,8 @@ #include #include #include +#include +#include #include #include @@ -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: @@ -299,9 +301,15 @@ int nla_memcmp(const struct nlattr *nla, const void *data, */ int nla_strcmp(const struct nlattr *nla, const char *str) { - int len = strlen(str) + 1; - int d = nla_len(nla) - len; + int len = strlen(str); + char *buf = nla_data(nla); + int attrlen = nla_len(nla); + int d; + if (attrlen > 0 && buf[attrlen - 1] == '\0') + attrlen--; + + d = attrlen - len; if (d == 0) d = memcmp(nla_data(nla), str, len);