From: Johannes Berg <johannes.b...@intel.com>

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 <dsah...@gmail.com>
Signed-off-by: Johannes Berg <johannes.b...@intel.com>
---
 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

Reply via email to