Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea5693cc authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller
Browse files

netlink: allow empty nested attributes



validate_nla() currently doesn't allow empty nested attributes. This
makes userspace code unnecessarily complicated when starting and ending
the nested attribute is done by generic upper level code and the inner
attributes are dumped by a module.

Add a special case to accept empty nested attributes. When the nested
attribute is non empty, the same checks as before are performed.

Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ed77a89c
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -83,6 +83,12 @@ static int validate_nla(struct nlattr *nla, int maxtype,
		if (attrlen < NLA_ALIGN(pt->len) + NLA_HDRLEN + nla_len(nla))
		if (attrlen < NLA_ALIGN(pt->len) + NLA_HDRLEN + nla_len(nla))
			return -ERANGE;
			return -ERANGE;
		break;
		break;
	case NLA_NESTED:
		/* a nested attributes is allowed to be empty; if its not,
		 * it must have a size of at least NLA_HDRLEN.
		 */
		if (attrlen == 0)
			break;
	default:
	default:
		if (pt->len)
		if (pt->len)
			minlen = pt->len;
			minlen = pt->len;