summaryrefslogtreecommitdiffstats
path: root/src/attr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/attr.c')
-rw-r--r--src/attr.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/attr.c b/src/attr.c
index 2ec6dce..af12a47 100644
--- a/src/attr.c
+++ b/src/attr.c
@@ -73,12 +73,15 @@ void *mnl_attr_get_data(const struct nlattr *attr)
* This function is used to check that a buffer that contains an attribute
* has enough room for the attribute that it stores, ie. this function can
* be used to verify that an attribute is neither malformed nor truncated.
+ *
+ * The @len parameter may become negative in malformed messages during
+ * attribute iteration, that is why we use a signed integer.
*/
int mnl_attr_ok(const struct nlattr *attr, int len)
{
- return len >= sizeof(struct nlattr) &&
+ return len >= (int)sizeof(struct nlattr) &&
attr->nla_len >= sizeof(struct nlattr) &&
- attr->nla_len <= len;
+ (int)attr->nla_len <= len;
}
/**