OSDN Git Service

media: dvb-frontends: fix a memory leak bug
authorWenwen Wang <wenwen@cs.uga.edu>
Sat, 17 Aug 2019 07:04:04 +0000 (04:04 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 21 Aug 2019 21:39:54 +0000 (18:39 -0300)
In cx24117_load_firmware(), 'buf' is allocated through kmalloc() to hold
the firmware. However, if i2c_transfer() fails, it is not deallocated,
leading to a memory leak bug.

Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/dvb-frontends/cx24117.c

index 42697a5..9fccc90 100644 (file)
@@ -619,8 +619,10 @@ static int cx24117_load_firmware(struct dvb_frontend *fe,
 
        /* send fw */
        ret = i2c_transfer(state->priv->i2c, &msg, 1);
-       if (ret < 0)
+       if (ret < 0) {
+               kfree(buf);
                return ret;
+       }
 
        kfree(buf);