Message ID | 20190423174334.19612-5-herakliusz.lipiec@intel.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Thomas Monjalon |
Headers | show |
Series | ipc: fix possible memleaks | expand |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
> -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Herakliusz Lipiec > Sent: Tuesday, April 23, 2019 7:44 PM > To: Burakov, Anatoly <anatoly.burakov@intel.com> > Cc: dev@dpdk.org; Lipiec, Herakliusz <herakliusz.lipiec@intel.com>; > jianfeng.tan@intel.com; stable@dpdk.org > Subject: [dpdk-dev] [PATCH v2 4/8] ipc: fix vfio memleak > > When sending synchronous IPC requests, the caller must free the response > buffer even if the request returned failure. Fix the code to correctly > use the IPC API. > > Bugzilla ID: 228 > Fixes: 83a73c5fef66 ("vfio: use generic multi-process channel") > Cc: jianfeng.tan@intel.com > Cc: stable@dpdk.org > Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> > Acked-by: Anatoly Burakov <anatoly.burakov@intel.com> > --- For the patch itself: Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
diff --git a/lib/librte_eal/linux/eal/eal_vfio.c b/lib/librte_eal/linux/eal/eal_vfio.c index 19e70bb66..d293df062 100644 --- a/lib/librte_eal/linux/eal/eal_vfio.c +++ b/lib/librte_eal/linux/eal/eal_vfio.c @@ -319,8 +319,8 @@ vfio_open_group_fd(int iommu_group_num) RTE_LOG(ERR, EAL, " bad VFIO group fd\n"); vfio_group_fd = 0; } - free(mp_reply.msgs); } + free(mp_reply.msgs); if (vfio_group_fd < 0) RTE_LOG(ERR, EAL, " cannot request group fd\n"); @@ -583,8 +583,8 @@ vfio_sync_default_container(void) p = (struct vfio_mp_param *)mp_rep->param; if (p->result == SOCKET_OK) iommu_type_id = p->iommu_type_id; - free(mp_reply.msgs); } + free(mp_reply.msgs); if (iommu_type_id < 0) { RTE_LOG(ERR, EAL, "Could not get IOMMU type for default container\n"); return -1; @@ -1050,8 +1050,8 @@ vfio_get_default_container_fd(void) free(mp_reply.msgs); return mp_rep->fds[0]; } - free(mp_reply.msgs); } + free(mp_reply.msgs); RTE_LOG(ERR, EAL, " cannot request default container fd\n"); return -1; @@ -1182,8 +1182,8 @@ rte_vfio_get_container_fd(void) free(mp_reply.msgs); return vfio_container_fd; } - free(mp_reply.msgs); } + free(mp_reply.msgs); RTE_LOG(ERR, EAL, " cannot request container fd\n"); return -1;