From ec2b89264cfc63e05e611cce82cc449197403aa4 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Mon, 5 Aug 2019 18:54:17 +0200 Subject: [PATCH] oce_if: fix oout of bounds access Change-Id: Id052d9e7714c0251e39384671da9a0f76f6c13c4 Reviewed-on: https://review.haiku-os.org/c/1682 Reviewed-by: Rene Gollent --- .../kernel/drivers/network/emulex_oce/dev/oce/oce_if.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_if.c b/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_if.c index a1b983799a..6b6b075488 100644 --- a/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_if.c +++ b/src/add-ons/kernel/drivers/network/emulex_oce/dev/oce/oce_if.c @@ -799,12 +799,14 @@ oce_fast_isr(void *arg) static int oce_alloc_intr(POCE_SOFTC sc, int vector, void (*isr) (void *arg, int pending)) { - POCE_INTR_INFO ii = &sc->intrs[vector]; + POCE_INTR_INFO ii; int rc = 0, rr; if (vector >= OCE_MAX_EQ) return (EINVAL); + ii = &sc->intrs[vector]; + /* Set the resource id for the interrupt. * MSIx is vector + 1 for the resource id, * INTx is 0 for the resource id.