s390/qeth: don't process empty bridge port events
authorJulian Wiedmann <jwi@linux.ibm.com>
Thu, 30 Jul 2020 15:01:20 +0000 (17:01 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 31 Jul 2020 23:44:36 +0000 (16:44 -0700)
Discard events that don't contain any entries. This shouldn't happen,
but subsequent code relies on being able to use entry 0. So better
be safe than accessing garbage.

Fixes: b4d72c08b358 ("qeth: bridgeport support - basic control")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_l2_main.c

index 38e97bbde9edcf74f8e29e7b0fd495c24baed4e1..8b342a88ff5cb9c8ab8d0c5e49ee655632fa78f9 100644 (file)
@@ -1140,6 +1140,10 @@ static void qeth_bridge_state_change(struct qeth_card *card,
        int extrasize;
 
        QETH_CARD_TEXT(card, 2, "brstchng");
+       if (qports->num_entries == 0) {
+               QETH_CARD_TEXT(card, 2, "BPempty");
+               return;
+       }
        if (qports->entry_length != sizeof(struct qeth_sbp_port_entry)) {
                QETH_CARD_TEXT_(card, 2, "BPsz%04x", qports->entry_length);
                return;