The check that attribute type is within 0...maxtype range in
__nla_validate_parse() sets only error message but not bad_attr in extack.
Set also bad_attr to tell userspace which attribute failed validation.
Signed-off-by: Michal Kubecek <[email protected]>
---
lib/nlattr.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/nlattr.c b/lib/nlattr.c
index 29f6336e2422..adc919b32bf9 100644
--- a/lib/nlattr.c
+++ b/lib/nlattr.c
@@ -356,7 +356,8 @@ static int __nla_validate_parse(const struct nlattr *head, int len, int maxtype,
if (type == 0 || type > maxtype) {
if (validate & NL_VALIDATE_MAXTYPE) {
- NL_SET_ERR_MSG(extack, "Unknown attribute type");
+ NL_SET_ERR_MSG_ATTR(extack, nla,
+ "Unknown attribute type");
return -EINVAL;
}
continue;
--
2.21.0
On Thu, 2019-05-02 at 12:48 +0000, Michal Kubecek wrote:
> The check that attribute type is within 0...maxtype range in
> __nla_validate_parse() sets only error message but not bad_attr in extack.
> Set also bad_attr to tell userspace which attribute failed validation.
Good catch, we actually do have an attribute in this case.
Reviewed-by: Johannes Berg <[email protected]>
johannes
On 5/2/19 6:48 AM, Michal Kubecek wrote:
> The check that attribute type is within 0...maxtype range in
> __nla_validate_parse() sets only error message but not bad_attr in extack.
> Set also bad_attr to tell userspace which attribute failed validation.
>
> Signed-off-by: Michal Kubecek <[email protected]>
> ---
> lib/nlattr.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
Reviewed-by: David Ahern <[email protected]>