Re: [PATCH 2/2 net-next] thunderbolt: Right shifting to zero bug in tbnet_handle_packet()
From: Dan Carpenter Date: Tue, 17 Oct 2017 15:33:01 +0300 > There is a problem when we do: > > sequence = pkg->hdr.length_sn & TBIP_HDR_SN_MASK; > sequence >>= TBIP_HDR_SN_SHIFT; > > TBIP_HDR_SN_SHIFT is 27, and right shifting a u8 27 bits is always > going to result in zero. The fix is to declare these variables as u32. > > Fixes: e69b6c02b4c3 ("net: Add support for networking over Thunderbolt cable") > Signed-off-by: Dan Carpenter Applied.
Re: [PATCH 2/2 net-next] thunderbolt: Right shifting to zero bug in tbnet_handle_packet()
On Tue, 2017-10-17 at 15:33 +0300, Dan Carpenter wrote: > There is a problem when we do: > > sequence = pkg->hdr.length_sn & TBIP_HDR_SN_MASK; > sequence >>= TBIP_HDR_SN_SHIFT; > > TBIP_HDR_SN_SHIFT is 27, and right shifting a u8 27 bits is always > going to result in zero. The fix is to declare these variables as > u32. > > Fixes: e69b6c02b4c3 ("net: Add support for networking over > Thunderbolt cable") > Signed-off-by: Dan Carpenter > > diff --git a/drivers/net/thunderbolt.c b/drivers/net/thunderbolt.c > index 1a7bc0bf4598..435854688a7a 100644 > --- a/drivers/net/thunderbolt.c > +++ b/drivers/net/thunderbolt.c > @@ -394,7 +394,7 @@ static int tbnet_handle_packet(const void *buf, > size_t size, void *data) > struct tbnet *net = data; > u32 command_id; > int ret = 0; > - u8 sequence; > + u32 sequence; > u64 route; > > /* Make sure the packet is for us */ Acked-by: Yehezkel Bernat Thanks!
[PATCH 2/2 net-next] thunderbolt: Right shifting to zero bug in tbnet_handle_packet()
There is a problem when we do: sequence = pkg->hdr.length_sn & TBIP_HDR_SN_MASK; sequence >>= TBIP_HDR_SN_SHIFT; TBIP_HDR_SN_SHIFT is 27, and right shifting a u8 27 bits is always going to result in zero. The fix is to declare these variables as u32. Fixes: e69b6c02b4c3 ("net: Add support for networking over Thunderbolt cable") Signed-off-by: Dan Carpenter diff --git a/drivers/net/thunderbolt.c b/drivers/net/thunderbolt.c index 1a7bc0bf4598..435854688a7a 100644 --- a/drivers/net/thunderbolt.c +++ b/drivers/net/thunderbolt.c @@ -394,7 +394,7 @@ static int tbnet_handle_packet(const void *buf, size_t size, void *data) struct tbnet *net = data; u32 command_id; int ret = 0; - u8 sequence; + u32 sequence; u64 route; /* Make sure the packet is for us */