[media] Staging: media/lirc: don't call put_ir_rx on rx twice
There is an exit path where rx is kfree'd on put_ir_rx and then a jump to label out_put_xx will again kfree it with another call to put_ir_rx. Fix this by adding a new label that avoids this 2nd call to put_ir_rx for this specific case. Detected with CoverityScan, CID#145119 ("Use after free") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
56b27d4dd3
commit
21f9f2ef7c
@ -1597,7 +1597,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
||||
i2c_set_clientdata(client, NULL);
|
||||
put_ir_rx(rx, true);
|
||||
ir->l.features &= ~LIRC_CAN_REC_LIRCCODE;
|
||||
goto out_put_xx;
|
||||
goto out_put_tx;
|
||||
}
|
||||
|
||||
/* Proceed only if the Tx client is also ready */
|
||||
@ -1637,6 +1637,7 @@ out_ok:
|
||||
out_put_xx:
|
||||
if (rx != NULL)
|
||||
put_ir_rx(rx, true);
|
||||
out_put_tx:
|
||||
if (tx != NULL)
|
||||
put_ir_tx(tx, true);
|
||||
out_put_ir:
|
||||
|
Loading…
Reference in New Issue
Block a user