On 6/7/19 9:49 AM, David Ahern wrote:
> On 6/7/19 4:49 AM, George Wilkie wrote:
>> If you configure a route with multiple labels, e.g.
>> ip route add 10.10.3.0/24 encap mpls 16/100 via 10.10.2.2 dev ens4
>> A warning is logged:
>> kernel: [ 130.561819] netlink: 'ip': attribute type 1 has an invalid
>> length.
>>
>> This happens because mpls_iptunnel_policy has set the type of
>> MPLS_IPTUNNEL_DST to fixed size NLA_U32.
>> Change it to a minimum size.
>> nla_get_labels() does the remaining validation.
>>
>> Signed-off-by: George Wilkie <[email protected]>
>> ---
>> net/mpls/mpls_iptunnel.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/mpls/mpls_iptunnel.c b/net/mpls/mpls_iptunnel.c
>> index 951b52d5835b..20c682143b01 100644
>> --- a/net/mpls/mpls_iptunnel.c
>> +++ b/net/mpls/mpls_iptunnel.c
>> @@ -28,7 +28,7 @@
>> #include "internal.h"
>>
>> static const struct nla_policy mpls_iptunnel_policy[MPLS_IPTUNNEL_MAX + 1]
>> = {
>> - [MPLS_IPTUNNEL_DST] = { .type = NLA_U32 },
>> + [MPLS_IPTUNNEL_DST] = { .len = sizeof(u32) },
>> [MPLS_IPTUNNEL_TTL] = { .type = NLA_U8 },
>> };
>>
>>
>
> MPLS_IPTUNNEL_DST is an array of u32's so that looks correct
>
> Reviewed-by: David Ahern <[email protected]>
>
Fixes tag:
Fixes: e3e4712ec096 ("mpls: ip tunnel support")