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

Commit d1a2627a authored by Inaky Perez-Gonzalez's avatar Inaky Perez-Gonzalez
Browse files

wimax: fix oops if netlink fails to add attribute



When sending a message to user space using wimax_msg(), if nla_put()
fails, correctly interpret the return code from wimax_msg_alloc() as
an err ptr and return the error code instead of crashing (as it is
assuming than non-NULL means the pointer is ok).

Signed-off-by: default avatarInaky Perez-Gonzalez <inaky@linux.intel.com>
parent 356d6c2d
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -149,7 +149,8 @@ struct sk_buff *wimax_msg_alloc(struct wimax_dev *wimax_dev,
	}
	result = nla_put(skb, WIMAX_GNL_MSG_DATA, size, msg);
	if (result < 0) {
		dev_err(dev, "no memory to add payload in attribute\n");
		dev_err(dev, "no memory to add payload (msg %p size %zu) in "
			"attribute: %d\n", msg, size, result);
		goto error_nla_put;
	}
	genlmsg_end(skb, genl_msg);
@@ -299,10 +300,10 @@ int wimax_msg(struct wimax_dev *wimax_dev, const char *pipe_name,
	struct sk_buff *skb;

	skb = wimax_msg_alloc(wimax_dev, pipe_name, buf, size, gfp_flags);
	if (skb == NULL)
		goto error_msg_new;
	if (IS_ERR(skb))
		result = PTR_ERR(skb);
	else
		result = wimax_msg_send(wimax_dev, skb);
error_msg_new:
	return result;
}
EXPORT_SYMBOL_GPL(wimax_msg);