]> git.droids-corp.org - dpdk.git/commitdiff
eal/bsd: fix possible IOPL fd leak
authorIlya Maximets <i.maximets@samsung.com>
Fri, 23 Nov 2018 15:39:19 +0000 (18:39 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Sun, 25 Nov 2018 10:44:25 +0000 (11:44 +0100)
If rte_eal_iopl_init() will be called more than once we'll leak
the file descriptor.

Fixes: b46fe31862ec ("eal/bsd: fix virtio on FreeBSD")
Cc: stable@dpdk.org
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
lib/librte_eal/bsdapp/eal/eal.c

index 508cbc46fdaf28e6a1c133e2c0c9d1ad4984ec40..b8152a75cdc30aa2aed24ac636c38b09b09077f5 100644 (file)
@@ -556,9 +556,11 @@ int rte_eal_has_hugepages(void)
 int
 rte_eal_iopl_init(void)
 {
-       static int fd;
+       static int fd = -1;
+
+       if (fd < 0)
+               fd = open("/dev/io", O_RDWR);
 
-       fd = open("/dev/io", O_RDWR);
        if (fd < 0)
                return -1;
        /* keep fd open for iopl */