Acked-by: Cheng Jiang <[email protected]>
> -----Original Message----- > From: Ma, WenwuX <[email protected]> > Sent: Wednesday, August 18, 2021 1:13 AM > To: [email protected] > Cc: [email protected]; Xia, Chenbo <[email protected]>; > Jiang, Cheng1 <[email protected]>; Hu, Jiayu <[email protected]>; > Ma, WenwuX <[email protected]>; [email protected] > Subject: [PATCH] examples/vhost: fix memory leak on forwarding packets. > > In function virtio_tx_local(), when the device receiving the packet is the > same as the device to which the packet is forwarded, or the device is > removed, we return but not free the packet, it will cause a memory leak. > > Fixes: 4796ad63ba1f ("examples/vhost: import userspace vhost application") > Cc: [email protected] > > Signed-off-by: Wenwu Ma <[email protected]> > --- > examples/vhost/main.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/examples/vhost/main.c b/examples/vhost/main.c index > bc3d71c898..07fd90ec64 100644 > --- a/examples/vhost/main.c > +++ b/examples/vhost/main.c > @@ -965,6 +965,7 @@ virtio_tx_local(struct vhost_dev *vdev, struct > rte_mbuf *m) > return -1; > > if (vdev->vid == dst_vdev->vid) { > + rte_pktmbuf_free(m); > RTE_LOG_DP(DEBUG, VHOST_DATA, > "(%d) TX: src and dst MAC is same. Dropping > packet.\n", > vdev->vid); > @@ -975,6 +976,7 @@ virtio_tx_local(struct vhost_dev *vdev, struct > rte_mbuf *m) > "(%d) TX: MAC address is local\n", dst_vdev->vid); > > if (unlikely(dst_vdev->remove)) { > + rte_pktmbuf_free(m); > RTE_LOG_DP(DEBUG, VHOST_DATA, > "(%d) device is marked for removal\n", dst_vdev- > >vid); > return 0; > -- > 2.25.1

