return MNL_CB_OK;
}
-static void
+static int
timeout_parse_attr_data(struct nftnl_obj *e,
const struct nlattr *nest)
{
memset(tb, 0, sizeof(struct nlattr *) * attr_max);
- mnl_attr_parse_nested(nest, parse_timeout_attr_policy_cb, &cnt);
+ if (mnl_attr_parse_nested(nest, parse_timeout_attr_policy_cb, &cnt) < 0)
+ return -1;
for (i = 1; i <= attr_max; i++) {
if (tb[i]) {
ntohl(mnl_attr_get_u32(tb[i])));
}
}
+ return 0;
}
static int nftnl_obj_ct_timeout_set(struct nftnl_obj *e, uint16_t type,
e->flags |= (1 << NFTNL_OBJ_CT_TIMEOUT_L4PROTO);
}
if (tb[NFTA_CT_TIMEOUT_DATA]) {
- timeout_parse_attr_data(e, tb[NFTA_CT_TIMEOUT_DATA]);
+ if (timeout_parse_attr_data(e, tb[NFTA_CT_TIMEOUT_DATA]) < 0)
+ return -1;
e->flags |= (1 << NFTNL_OBJ_CT_TIMEOUT_ARRAY);
}
return 0;