bt8xx: fix memory leak
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Sat, 7 Oct 2017 22:37:49 +0000 (22:37 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Nov 2017 09:06:30 +0000 (10:06 +0100)
[ Upstream commit 6792eb0cf9310ec240b7e7c9bfa86dff4c758c68 ]

If dvb_attach() fails then we were just printing an error message and
exiting but the memory allocated to state was not released.

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/pci/bt8xx/dvb-bt8xx.c

index d407244fd1bce3339b3fdbc13ea3e4801114f19a..bd0f5b1951884063d5c447d1498fdf9d9f98c588 100644 (file)
@@ -680,6 +680,7 @@ static void frontend_init(struct dvb_bt8xx_card *card, u32 type)
                /*      DST is not a frontend, attaching the ASIC       */
                if (dvb_attach(dst_attach, state, &card->dvb_adapter) == NULL) {
                        pr_err("%s: Could not find a Twinhan DST\n", __func__);
+                       kfree(state);
                        break;
                }
                /*      Attach other DST peripherals if any             */