]> git.karo-electronics.de Git - linux-beck.git/commitdiff
solos: Check for rogue received packets
authorNathan Williams <nathan@traverse.com.au>
Wed, 25 Mar 2009 09:33:42 +0000 (20:33 +1100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 25 Mar 2009 11:17:49 +0000 (11:17 +0000)
Sometimes there can be received packets with the size field set to 0xFFFF.
This seems to only occur after an FPGA or firmware upgrade.
This patch discards packets with an invalid size.

Signed-off-by: Nathan Williams <nathan@traverse.com.au>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/atm/solos-pci.c

index bfef8d255811d1500fb2c5a898b38d2244e5eace..6c828347c9cc4a437f0e6d257158e57f3d958812 100644 (file)
@@ -671,6 +671,10 @@ void solos_bh(unsigned long card_arg)
                                memcpy_fromio(header, RX_BUF(card, port), sizeof(*header));
 
                                size = le16_to_cpu(header->size);
+                               if (size > (card->buffer_size - sizeof(*header))){
+                                       dev_warn(&card->dev->dev, "Invalid buffer size\n");
+                                       continue;
+                               }
 
                                skb = alloc_skb(size + 1, GFP_ATOMIC);
                                if (!skb) {