qeth: discard inbound packets with unknown header id
authorUrsula Braun <braunu@de.ibm.com>
Fri, 5 Oct 2007 14:45:48 +0000 (16:45 +0200)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 10 Oct 2007 23:54:42 +0000 (16:54 -0700)
Debugging statements are added for inbound packets with unknown
header id. Those packets are discarded and no longer processed as
osn-packets.

Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/s390/net/qeth_main.c

index 6d7b79e2ba928a523ea0ecf1f0b4f74b45018540..c67e7dfd56cc075fa9d8c6ae3e9d1e3f18a1b3a1 100644 (file)
@@ -2702,10 +2702,15 @@ qeth_process_inbound_buffer(struct qeth_card *card,
                        qeth_layer2_rebuild_skb(card, skb, hdr);
                else if (hdr->hdr.l3.id == QETH_HEADER_TYPE_LAYER3)
                        vlan_tag = qeth_rebuild_skb(card, skb, hdr);
-               else { /*in case of OSN*/
+               else if (hdr->hdr.osn.id == QETH_HEADER_TYPE_OSN) {
                        skb_push(skb, sizeof(struct qeth_hdr));
                        skb_copy_to_linear_data(skb, hdr,
                                                sizeof(struct qeth_hdr));
+               } else { /* unknown header type */
+                       dev_kfree_skb_any(skb);
+                       QETH_DBF_TEXT(trace, 3, "inbunkno");
+                       QETH_DBF_HEX(control, 3, hdr, QETH_DBF_CONTROL_LEN);
+                       continue;
                }
                /* is device UP ? */
                if (!(card->dev->flags & IFF_UP)){