Skip to content

Commit c2eecef

Browse files
HBh25Ymathieupoirier
authored andcommitted
rpmsg: virtio: Fix possible double free in rpmsg_probe()
vch will be free in virtio_rpmsg_release_device() when rpmsg_ns_register_device() fails. There is no need to call kfree() again. Fix this by changing error path from free_vch to free_ctrldev. Fixes: c486682 ("rpmsg: virtio: Register the rpmsg_char device") Signed-off-by: Hangyu Hua <[email protected]> Tested-by: Arnaud Pouliquen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mathieu Poirier <[email protected]>
1 parent 1a358d3 commit c2eecef

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

drivers/rpmsg/virtio_rpmsg_bus.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -973,7 +973,8 @@ static int rpmsg_probe(struct virtio_device *vdev)
973973

974974
err = rpmsg_ns_register_device(rpdev_ns);
975975
if (err)
976-
goto free_vch;
976+
/* vch will be free in virtio_rpmsg_release_device() */
977+
goto free_ctrldev;
977978
}
978979

979980
/*
@@ -997,8 +998,6 @@ static int rpmsg_probe(struct virtio_device *vdev)
997998

998999
return 0;
9991000

1000-
free_vch:
1001-
kfree(vch);
10021001
free_ctrldev:
10031002
rpmsg_virtio_del_ctrl_dev(rpdev_ctrl);
10041003
free_coherent:

0 commit comments

Comments
 (0)