From mboxrd@z Thu Jan 1 00:00:00 1970 From: Johannes Berg Subject: [RFC 2/5] netlink: set extack error message in nla_validate() Date: Tue, 18 Sep 2018 15:12:09 +0200 Message-ID: <20180918131212.20266-2-johannes@sipsolutions.net> References: <20180918131212.20266-1-johannes@sipsolutions.net> Cc: Johannes Berg To: netdev@vger.kernel.org Return-path: Received: from s3.sipsolutions.net ([144.76.43.62]:39942 "EHLO sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726037AbeIRSpA (ORCPT ); Tue, 18 Sep 2018 14:45:00 -0400 In-Reply-To: <20180918131212.20266-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 120ad569e13d..efbd6c1aff29 100644 --- a/lib/nlattr.c +++ b/lib/nlattr.c @@ -181,9 +181,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