On 27-Apr-18 4:21 PM, Bruce Richardson wrote:
On Wed, Apr 25, 2018 at 10:56:43AM +0100, Anatoly Burakov wrote:
Normally, tailq entry should have a valid fd by the time we attempt
to map the segment. However, in case it doesn't, we're leaking fd,
so fix it.
Coverity issue: 272570
Fixes: 2a04139f66b4 ("eal: add single file segments option")
Cc: anatoly.bura...@intel.com
Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com>
---
lib/librte_eal/linuxapp/eal/eal_memalloc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/librte_eal/linuxapp/eal/eal_memalloc.c
b/lib/librte_eal/linuxapp/eal/eal_memalloc.c
index fab5a98..b02e3a5 100644
--- a/lib/librte_eal/linuxapp/eal/eal_memalloc.c
+++ b/lib/librte_eal/linuxapp/eal/eal_memalloc.c
@@ -524,6 +524,8 @@ alloc_seg(struct rte_memseg *ms, void *addr, int socket_id,
if (te != NULL && te->fd >= 0) {
close(te->fd);
te->fd = -1;
Is "fd" still not being leaked here, since we won't hit the else case and
then jump to the end of the function where it goes out of scope?
Perhaps i should clarify - te->fd and fd are the same fd.
+ } else {
+ close(fd);
}
/* ignore errors, can't make it any worse */
unlink(path);
--
2.7.4
--
Thanks,
Anatoly