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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Aug 2020 09:02:03 +0000 (11:02 +0200)
[ Upstream commit 02472e28b9a45471c6d8729ff2c7422baa9be46a ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/s390/net/qeth_l2_main.c

index 5115268..c878c87 100644 (file)
@@ -1675,6 +1675,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;