thunderbolt: Right shifting to zero bug in tbnet_handle_packet()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 17 Oct 2017 12:33:01 +0000 (15:33 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 Oct 2017 12:04:32 +0000 (13:04 +0100)
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 <dan.carpenter@oracle.com>
Acked-by: Yehezkel Bernat <yehezkel.bernat@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/thunderbolt.c

index 1a7bc0bf459806bb1349be8a63ea00153fe7095a..435854688a7a9ae0d66790de8c1f1cc43d4b691a 100644 (file)
@@ -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 */