struct nlattr **attrbuf;
int err;
+ if (!family->maxattr)
+ return NULL;
+
if (parallel) {
attrbuf = kmalloc_array(family->maxattr + 1,
sizeof(struct nlattr *), GFP_KERNEL);
if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen))
return -EINVAL;
- if (!family->maxattr)
- goto no_attrs;
-
attrs = genl_family_rcv_msg_attrs_parse(family, nlh, extack,
ops, hdrlen,
GENL_DONT_VALIDATE_DUMP_STRICT,
attrbuf = genl_family_rcv_msg_attrs_parse(family, nlh, extack,
ops, hdrlen,
GENL_DONT_VALIDATE_STRICT,
- family->maxattr &&
family->parallel_ops);
if (IS_ERR(attrbuf))
return PTR_ERR(attrbuf);
family->post_doit(ops, skb, &info);
out:
- genl_family_rcv_msg_attrs_free(family, attrbuf,
- family->maxattr && family->parallel_ops);
+ genl_family_rcv_msg_attrs_free(family, attrbuf, family->parallel_ops);
return err;
}