Patch "rpmsg: virtio: Fix possible double free in rpmsg_probe()" has been added to the 5.18-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    rpmsg: virtio: Fix possible double free in rpmsg_probe()

to the 5.18-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     rpmsg-virtio-fix-possible-double-free-in-rpmsg_probe.patch
and it can be found in the queue-5.18 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 372575642eee8c13705771ceb377ff9891449300
Author: Hangyu Hua <hbh25y@xxxxxxxxx>
Date:   Tue Apr 26 14:05:34 2022 +0800

    rpmsg: virtio: Fix possible double free in rpmsg_probe()
    
    [ Upstream commit c2eecefec5df1306eafce28ccdf1ca159a552ecc ]
    
    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: c486682ae1e2 ("rpmsg: virtio: Register the rpmsg_char device")
    Signed-off-by: Hangyu Hua <hbh25y@xxxxxxxxx>
    Tested-by: Arnaud Pouliquen <arnaud.pouliquen@xxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20220426060536.15594-2-hbh25y@xxxxxxxxx
    Signed-off-by: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
index 3ede25b1f2e4..d4e453062062 100644
--- a/drivers/rpmsg/virtio_rpmsg_bus.c
+++ b/drivers/rpmsg/virtio_rpmsg_bus.c
@@ -973,7 +973,8 @@ static int rpmsg_probe(struct virtio_device *vdev)
 
 		err = rpmsg_ns_register_device(rpdev_ns);
 		if (err)
-			goto free_vch;
+			/* vch will be free in virtio_rpmsg_release_device() */
+			goto free_ctrldev;
 	}
 
 	/*
@@ -997,8 +998,6 @@ static int rpmsg_probe(struct virtio_device *vdev)
 
 	return 0;
 
-free_vch:
-	kfree(vch);
 free_ctrldev:
 	rpmsg_virtio_del_ctrl_dev(rpdev_ctrl);
 free_coherent:



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux