diff options
Diffstat (limited to 'tools/lib/bpf/nlattr.c')
| -rw-r--r-- | tools/lib/bpf/nlattr.c | 15 | 
1 files changed, 7 insertions, 8 deletions
| diff --git a/tools/lib/bpf/nlattr.c b/tools/lib/bpf/nlattr.c index 975e265eab3b..06663f9ea581 100644 --- a/tools/lib/bpf/nlattr.c +++ b/tools/lib/bpf/nlattr.c @@ -63,16 +63,16 @@ static int validate_nla(struct nlattr *nla, int maxtype,  		minlen = nla_attr_minlen[pt->type];  	if (libbpf_nla_len(nla) < minlen) -		return -1; +		return -EINVAL;  	if (pt->maxlen && libbpf_nla_len(nla) > pt->maxlen) -		return -1; +		return -EINVAL;  	if (pt->type == LIBBPF_NLA_STRING) {  		char *data = libbpf_nla_data(nla);  		if (data[libbpf_nla_len(nla) - 1] != '\0') -			return -1; +			return -EINVAL;  	}  	return 0; @@ -118,19 +118,18 @@ int libbpf_nla_parse(struct nlattr *tb[], int maxtype, struct nlattr *head,  		if (policy) {  			err = validate_nla(nla, maxtype, policy);  			if (err < 0) -				goto errout; +				return err;  		} -		if (tb[type]) +		if (tb[type]) {  			pr_warn("Attribute of type %#x found multiple times in message, "  				"previous attribute is being ignored.\n", type); +		}  		tb[type] = nla;  	} -	err = 0; -errout: -	return err; +	return 0;  }  /** | 
