From mboxrd@z Thu Jan 1 00:00:00 1970 From: Johannes Berg Subject: [PATCH 3/7] netlink: set extack error message in nla_validate() Date: Wed, 19 Sep 2018 14:08:56 +0200 Message-ID: <20180919120900.28708-4-johannes@sipsolutions.net> References: <20180919120900.28708-1-johannes@sipsolutions.net> Cc: Johannes Berg To: linux-wireless@vger.kernel.org, netdev@vger.kernel.org Return-path: Received: from s3.sipsolutions.net ([144.76.43.62]:53230 "EHLO sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727772AbeISRqx (ORCPT ); Wed, 19 Sep 2018 13:46:53 -0400 In-Reply-To: <20180919120900.28708-1-johannes@sipsolutions.net> Sender: netdev-owner@vger.kernel.org List-ID: From: Johannes Berg In nla_parse() we already set this, but it makes sense to also do it in nla_validate() which already also sets the bad attribute pointer. CC: David Ahern Signed-off-by: Johannes Berg --- lib/nlattr.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/nlattr.c b/lib/nlattr.c index e2e5b38394d5..33404745bec4 100644 --- a/lib/nlattr.c +++ b/lib/nlattr.c @@ -180,9 +180,13 @@ int nla_validate(const struct nlattr *head, int len, int maxtype, int rem; nla_for_each_attr(nla, head, len, rem) { - int err = validate_nla(nla, maxtype, policy, NULL); + static const char _msg[] = "Attribute failed policy validation"; + const char *msg = _msg; + int err = validate_nla(nla, maxtype, policy, &msg); if (err < 0) { + if (extack) + extack->_msg = msg; NL_SET_BAD_ATTR(extack, nla); return err; } -- 2.14.4