X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=lib%2Fnlattr.c;h=be25e355a5add38adacae6939f6352a8692c91fa;hp=a8408b6cacdf7ff8e73fcd3bf7db8a850afb56a4;hb=0abb05a8cfd498a24ff4d290966e22fda3ee08e5;hpb=47c6a04bf58163fe2a429617ae6b1a93ba363723 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);