[PATCH 1/1] netlink: fix neigh lladdr decoder

Chen Jingpiao chenjingpiao at gmail.com
Sat Sep 1 16:46:32 UTC 2018


On 09/01 10:27, Jamal Hadi Salim wrote:
> From: Jamal Hadi Salim <jhs at mojatatu.com>
> 
> Fixes: 19abd528fbba ("rtnl_neigh: decode ndmsg netlink attributes")
> signed-off-by: Jamal Hadi Salim <jhs at mojatatu.com>
> ---
>  rtnl_neigh.c | 18 +++++++++++++++++-
>  1 file changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/rtnl_neigh.c b/rtnl_neigh.c
> index 31087748..2c9c6f1a 100644
> --- a/rtnl_neigh.c
> +++ b/rtnl_neigh.c
> @@ -56,6 +56,22 @@ decode_neigh_addr(struct tcb *const tcp,
>  }
>  
>  static bool
> +decode_neigh_lladdr(struct tcb *const tcp,
> +		    const kernel_ulong_t addr,
> +		    const unsigned int len,
> +		    const void *const opaque_data)
> +{
> +	uint8_t maddr[6];
> +
> +	if (len < sizeof(maddr))
> +		return false;
> +	else if (!umove_or_printaddr(tcp, addr, &maddr))
> +		print_mac_addr("lladdr ",  maddr, sizeof(maddr));

The prefix is incorrect.

		print_mac_addr("",  maddr, sizeof(maddr));

> +
> +	return true;
> +}
> +
> +static bool
>  decode_nda_cacheinfo(struct tcb *const tcp,
>  		     const kernel_ulong_t addr,
>  		     const unsigned int len,
> @@ -78,7 +94,7 @@ decode_nda_cacheinfo(struct tcb *const tcp,
>  
>  static const nla_decoder_t ndmsg_nla_decoders[] = {
>  	[NDA_DST]		= decode_neigh_addr,
> -	[NDA_LLADDR]		= decode_neigh_addr,
> +	[NDA_LLADDR]		= decode_neigh_lladdr,
>  	[NDA_CACHEINFO]		= decode_nda_cacheinfo,
>  	[NDA_PROBES]		= decode_nla_u32,
>  	[NDA_VLAN]		= decode_nla_u16,
> -- 
> 2.11.0
> 

It's better to add a test in tests/nlattr_ndmsg.c.

Thank you.

--
Chen Jingpiao


More information about the Strace-devel mailing list