summaryrefslogtreecommitdiffstats
path: root/0001-libertas-fix-a-potential-NULL-pointer-dereference.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-libertas-fix-a-potential-NULL-pointer-dereference.patch')
-rw-r--r--0001-libertas-fix-a-potential-NULL-pointer-dereference.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/0001-libertas-fix-a-potential-NULL-pointer-dereference.patch b/0001-libertas-fix-a-potential-NULL-pointer-dereference.patch
new file mode 100644
index 000000000..efdc46d68
--- /dev/null
+++ b/0001-libertas-fix-a-potential-NULL-pointer-dereference.patch
@@ -0,0 +1,40 @@
+From 7da413a18583baaf35dd4a8eb414fa410367d7f2 Mon Sep 17 00:00:00 2001
+From: Allen Pais <allen.pais@oracle.com>
+Date: Wed, 18 Sep 2019 22:05:00 +0530
+Subject: [PATCH] libertas: fix a potential NULL pointer dereference
+
+alloc_workqueue is not checked for errors and as a result,
+a potential NULL dereference could occur.
+
+Signed-off-by: Allen Pais <allen.pais@oracle.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ drivers/net/wireless/marvell/libertas/if_sdio.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/drivers/net/wireless/marvell/libertas/if_sdio.c b/drivers/net/wireless/marvell/libertas/if_sdio.c
+index 242d8845da3f..30f1025ecb9b 100644
+--- a/drivers/net/wireless/marvell/libertas/if_sdio.c
++++ b/drivers/net/wireless/marvell/libertas/if_sdio.c
+@@ -1179,6 +1179,10 @@ static int if_sdio_probe(struct sdio_func *func,
+
+ spin_lock_init(&card->lock);
+ card->workqueue = alloc_workqueue("libertas_sdio", WQ_MEM_RECLAIM, 0);
++ if (unlikely(!card->workqueue)) {
++ ret = -ENOMEM;
++ goto err_queue;
++ }
+ INIT_WORK(&card->packet_worker, if_sdio_host_to_card_worker);
+ init_waitqueue_head(&card->pwron_waitq);
+
+@@ -1230,6 +1234,7 @@ static int if_sdio_probe(struct sdio_func *func,
+ lbs_remove_card(priv);
+ free:
+ destroy_workqueue(card->workqueue);
++err_queue:
+ while (card->packets) {
+ packet = card->packets;
+ card->packets = card->packets->next;
+--
+2.23.0
+