rds: prevent dereference of a NULL device in rds_iw_laddr_check
[pandora-kernel.git] / lib / nlattr.c
index ac09f22..190ae10 100644 (file)
@@ -20,6 +20,7 @@ static const u16 nla_attr_minlen[NLA_TYPE_MAX+1] = {
        [NLA_U16]       = sizeof(u16),
        [NLA_U32]       = sizeof(u32),
        [NLA_U64]       = sizeof(u64),
+       [NLA_MSECS]     = sizeof(u64),
        [NLA_NESTED]    = NLA_HDRLEN,
 };
 
@@ -298,9 +299,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);