Takashi Iwai aa9320
From 382ef7ff1854d527f5ff394d337f5f4f4952ec18 Mon Sep 17 00:00:00 2001
Takashi Iwai aa9320
From: Johan Hovold <johan@kernel.org>
Takashi Iwai aa9320
Date: Fri, 17 Sep 2021 13:46:20 +0200
Takashi Iwai aa9320
Subject: [PATCH] ipack: ipoctal: fix missing allocation-failure check
Takashi Iwai aa9320
Git-commit: 445c8132727728dc297492a7d9fc074af3e94ba3
Takashi Iwai aa9320
Patch-mainline: v5.15-rc4
Takashi Iwai aa9320
References: stable-5.14.10
Takashi Iwai aa9320
Takashi Iwai aa9320
commit 445c8132727728dc297492a7d9fc074af3e94ba3 upstream.
Takashi Iwai aa9320
Takashi Iwai aa9320
Add the missing error handling when allocating the transmit buffer to
Takashi Iwai aa9320
avoid dereferencing a NULL pointer in write() should the allocation
Takashi Iwai aa9320
ever fail.
Takashi Iwai aa9320
Takashi Iwai aa9320
Fixes: ba4dc61fe8c5 ("Staging: ipack: add support for IP-OCTAL mezzanine board")
Takashi Iwai aa9320
Cc: stable@vger.kernel.org      # 3.5
Takashi Iwai aa9320
Acked-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Takashi Iwai aa9320
Signed-off-by: Johan Hovold <johan@kernel.org>
Takashi Iwai aa9320
Link: https://lore.kernel.org/r/20210917114622.5412-5-johan@kernel.org
Takashi Iwai aa9320
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Takashi Iwai aa9320
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai aa9320
Takashi Iwai aa9320
---
Takashi Iwai aa9320
 drivers/ipack/devices/ipoctal.c | 4 +++-
Takashi Iwai aa9320
 1 file changed, 3 insertions(+), 1 deletion(-)
Takashi Iwai aa9320
Takashi Iwai aa9320
diff --git a/drivers/ipack/devices/ipoctal.c b/drivers/ipack/devices/ipoctal.c
Takashi Iwai aa9320
index 35a8ed34c0ca..64b67f0d5c04 100644
Takashi Iwai aa9320
--- a/drivers/ipack/devices/ipoctal.c
Takashi Iwai aa9320
+++ b/drivers/ipack/devices/ipoctal.c
Takashi Iwai aa9320
@@ -386,7 +386,9 @@ static int ipoctal_inst_slot(struct ipoctal *ipoctal, unsigned int bus_nr,
Takashi Iwai aa9320
 
Takashi Iwai aa9320
 		channel = &ipoctal->channel[i];
Takashi Iwai aa9320
 		tty_port_init(&channel->tty_port);
Takashi Iwai aa9320
-		tty_port_alloc_xmit_buf(&channel->tty_port);
Takashi Iwai aa9320
+		res = tty_port_alloc_xmit_buf(&channel->tty_port);
Takashi Iwai aa9320
+		if (res)
Takashi Iwai aa9320
+			continue;
Takashi Iwai aa9320
 		channel->tty_port.ops = &ipoctal_tty_port_ops;
Takashi Iwai aa9320
 
Takashi Iwai aa9320
 		ipoctal_reset_stats(&channel->stats);
Takashi Iwai aa9320
-- 
Takashi Iwai aa9320
2.26.2
Takashi Iwai aa9320