Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1339fc5a authored by xiaowang's avatar xiaowang Committed by Gerrit - the friendly Code Review server
Browse files

radio: RTC6226: correctly cleanup videodev



Fix issue: free static videodev structure. Crash might occur
when video_register_device return fail.

CRs-Fixed: 2638184
Change-Id: Ie5b2485caa2649b2baeab5e136a949ec6765bac8
Signed-off-by: default avatarxiaowang <xiaowang@codeaurora.org>
parent c18b5673
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -891,7 +891,7 @@ static int rtc6226_i2c_probe(struct i2c_client *client,
err_rds:
	kfree(radio->buffer);
err:
	video_device_release(&radio->videodev);
	video_device_release_empty(&radio->videodev);
err_v4l2:
	v4l2_device_unregister(v4l2_dev);
err_vreg:
@@ -920,9 +920,10 @@ static int rtc6226_i2c_remove(struct i2c_client *client)

	free_irq(client->irq, radio);
	kfree(radio->buffer);
	video_device_release(&radio->videodev);
	v4l2_ctrl_handler_free(&radio->ctrl_handler);
	if (video_is_registered(&radio->videodev))
		video_unregister_device(&radio->videodev);
	video_device_release_empty(&radio->videodev);
	v4l2_device_unregister(&radio->v4l2_dev);
	kfree(radio);
	FMDBG("%s exit\n", __func__);