From fc40b33b24116352df3d9922bb1afb41794b6e96 Mon Sep 17 00:00:00 2001 From: Vatsal Bucha Date: Tue, 22 Oct 2019 11:07:07 +0530 Subject: [PATCH] ASoC: wcd-mbhc: Fix null pointer dereference for mbhc IRQ data pointer is corrupted due to slimbus NGD errors. This may happen as IRQ will be received from slimbus. Check for mbhc null pointer before dereferencing to avoid crash. Change-Id: I142ee535c6d643b53063b57c0f45414aff8b6304 Signed-off-by: Vatsal Bucha --- asoc/codecs/wcd-mbhc-v2.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/asoc/codecs/wcd-mbhc-v2.c b/asoc/codecs/wcd-mbhc-v2.c index 01544aab9c43..ed98deb628e5 100644 --- a/asoc/codecs/wcd-mbhc-v2.c +++ b/asoc/codecs/wcd-mbhc-v2.c @@ -1055,6 +1055,10 @@ static irqreturn_t wcd_mbhc_mech_plug_detect_irq(int irq, void *data) struct wcd_mbhc *mbhc = data; pr_debug("%s: enter\n", __func__); + if (mbhc == NULL) { + pr_err("%s: NULL irq data\n", __func__); + return IRQ_NONE; + } if (unlikely((mbhc->mbhc_cb->lock_sleep(mbhc, true)) == false)) { pr_warn("%s: failed to hold suspend\n", __func__); r = IRQ_NONE;