diff options
Diffstat (limited to '0001-libertas-fix-a-potential-NULL-pointer-dereference.patch')
-rw-r--r-- | 0001-libertas-fix-a-potential-NULL-pointer-dereference.patch | 40 |
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 + |